Je veux sélectionner une plage entre les éléments d'une liste, mais au lieu de mettre, par exemple, l'élément 7, je mets ce que je vois dans les éléments. Le nombre entre "document" et "35621" change, j'ai besoin de convertir ces nombres en une plage (je pense?)
Je ne sais pas vraiment comment faire cela.
[ 'document-456-35621', 'document-457-35621', 'document-458-35621', 'document-459-35621', 'document-460-35621' ]
3 Réponses :
Vous pouvez le faire comme ceci:
[ 'document-456-35621', 'document-457-35621', 'document-458-35621', 'document-459-35621', 'document-460-35621' ]
Ou bien, vous pouvez utiliser List Comprehension et faites-le comme ceci:
new_list = [item for item in my_list if lower_bound <= int(item.split('-')[1]) <= upper_bound] print(new_list)
Sortie:
my_list = [ 'document-452-35621', 'document-453-35621', 'document-454-35621', 'document-455-35621', 'document-456-35621', 'document-457-35621', 'document-458-35621', 'document-459-35621', 'document-460-35621' ] data_input = input("\nEnter range: \n").split('-') # ['456', '460'] lower_bound = int(data_input[0]) # 456 upper_bound = int(data_input[1]) # 460 new_list = [] for item in my_list: if lower_bound <= int(item.split('-')[1]) <= upper_bound: new_list.append(item) print(new_list)
Je peux voir que vous utilisez Python 2
, donc la seule différence que je pense est avec les print
et raw_input
. Cependant, puisque " Python 2.7 ne sera pas maintenu après 2020, " je vous encourage à utiliser Python 3
et supérieur.
Merci pour votre réponse, je ferai plus de recherche sur la liste, oui je connais python 2x, je passerai bientôt sur python3. :)
veuillez voir le code ci-dessous:
Ceci est le code complet. [n pour n dans ma_liste si int (plages [0])
data_input = input("\nEnter range: \n")
my_list = ['document-452-35621', 'document-453-35621', 'document-454-35621', 'document-455-35621', 'document-456-35621', 'document-457-35621', 'document-458-35621', 'document-459-35621', 'document-460-35621']
ranges = data_input.split('-')
result = [n for n in my_list if int(ranges[0]) <= int(n.split('-')[1]) <= int(ranges[1])]
print (result)
Vous devez convertir l'entrée en int:
['document-456-35621', 'document-457-35621', 'document-458-35621', 'document-459-35621', 'document-460-35621']
la sortie sera:
my_list = [ 'document-452-35621', 'document-453-35621', 'document-454-35621', 'document-455-35621', 'document-456-35621', 'document-457-35621', 'document-458-35621', 'document-459-35621', 'document-460-35621' ] data_input = input("\nEnter range: \n").split('-') print([x for x in my_list if int(data_input[0])<=int(x.split('-')[1]))<=int(data_input[1])]