J'écris un programme pour visualiser les éléments d'une liste inférieurs ou supérieurs à 9. Voici la liste que j'ai faite:
list = [("item1",12.5),("item",2.3),("item",7.0)]
Je veux pouvoir imprimer les éléments dont le nombre est inférieur à 9, puis imprimez ceux dont le nombre est supérieur à 10.
6 Réponses :
Vous pouvez utiliser les list comprehensions , qui fournissent un moyen simple de filtrer les listes:
[i for i in l if i[1] < 9]
# [('item', 2.3), ('item', 7.0)]
Ce qui équivaut à la boucle for suivante:
new_list = []
for i in l:
if i[1] > 9:
new_list.append(i)
print(new_list)
# [('item1', 12.5)]
Ou pour des valeurs inférieures à 9 :
l = [("item1",12.5),("item",2.3),("item",7.0)]
[i for i in l if i[1] > 9]
# [('item1', 12.5)]
Étant donné une liste,
>>> [(item, value) for (item, value) in L if value < 9.0]
[('item', 2.3), ('item', 7.0)]
(notez en évitant d'utiliser le mot-clé list comme nom de variable), vous pouvez faire une compréhension de liste, par exemple: p>
L = [("item1",12.5),("item",2.3),("item",7.0)]
Pour changer les critères, changez le I f à la fin.
Boucle / itération sur les éléments de la liste
my_list = [("item1",12.5),("item",2.3),("item",7.0)]
for item in my_list:
if item[1] < 9: # change <9 to whatever condition you want
print(item)
Vous pouvez utiliser la fonction de filtre comme telle:
print(filtered_list)
[('item', 2.3), ('item', 7.0)]
en imprimant ceci:
original_list = [("item1",12.5),("item",2.3),("item",7.0)]
filtered_list = list(filter(lambda x: x[1] < 9.0, original_list))
liste = [("item1",12.5),("item",2.3),("item",7.0)]
index=0
while(index<liste.__len__()):
if liste[index][1] > 9:
print(liste[index])
index=index+1
Veuillez modifier votre réponse et expliquer pourquoi le code que vous avez fourni fonctionne.
Stockage des valeurs dans 2 listes
my_list = [("item1",12.5),("item",2.3),("item",7.0)]
less_than_9 = [x for x in my_list if x[1] < 9]
more_than_9 = [x for x in my_list if x[1] > 9]
>>> print(less_than_9)
[("item1",12.5)]
>>> print(more_than_9)
[("item",2.3),("item",7.0)]