0
votes

Comment puis-je chercher l'adresse IP à partir du tuple suivant dans Python

('table',
 [(1,
   {u'Node': u'1',
    u'Mode': u'a',
    u'HostName': u'hn19',
    u'Address': u'10.10.10.10'}),
   (2,
    {u'Node': u'2',
     u'Mode': u'b',
     u'HostName': u'hn20',
     u'Address': u'10.10.10.11'})]) 
Please suggest some ways to avoid loops.
thanks in advance :)

3 commentaires

Vous pouvez simplement l'indexer? Et s'il y a plusieurs enregistrements, vous devez évidemment y introduire dessus;


@Aditya je ne veux pas duper le code


S'il vous plaît montrer ce que vous avez essayé dans le code Python?


3 Réponses :


1
votes
_, table = that_data_you_posted
ip_addresses = [d[u'Address'] for _, d in table]
This just hides the loop in a list comprehension. There's obviously no way to avoid iterating over multiple rows in a table.

1 commentaires

C'est très utile, merci :)



0
votes

Comme il s'agit d'un petit tuple, nous pouvons continuer à utiliser l'index, mais lorsque vous avez un tuple plus grand, vous devez sûrement utiliser des boucles.

Pour l'instant, vous pouvez essayer ce P>

#a is your tuple.
ipaddress1 = a[1][0][1][u'Address']
ipaddress2 = a[1][1][1][u'Address'] 


0 commentaires

0
votes

J'aurais créé dict of clé comme hôte, valeurs IP.

_, lst = tpl
ip_dict= { d[u'hn20'] : d[u'Address'] for _,d if u'hn20' in d and u'Address' in d }


0 commentaires