('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 Réponses :
_, 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.
C'est très utile, merci :)
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']
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 }
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?