Python: Liste d'entiers
J'ai lu un fichier et convertis chaque ligne dans une liste. Un échantillon de la liste ressemble à ceci:
['15', '2', '0'], ['63', '3', '445', '456' '0'], ['23', '4', '0']
je veux récupérer le premier nombre de chaque liste et le convertir en entier et donc quand j'ai réaliser le type de la fonction c'est à dire
type(x)
<type 'int'> is returned
Aussi, quand j'ai l'impression x les nombres entiers sont imprimés individuellement, plutôt que rejoint. c'est à dire si j'ai pris les 3 premiers numéros de la liste ci-dessus les numéros ne sont pas imprimés comme:
156323
- Votre question est vague quant à la façon dont vous voulez que la sortie de la. Merci de le préciser.
- Il serait plus utile si vous nous avez dit comment vous souhaitez que les numéros imprimés, plutôt que ce que vous ne voulez pas (comme je suis en supposant qu'il existe un nombre infini de ces).
InformationsquelleAutor harpalss | 2009-12-15
Vous devez vous connecter pour publier un commentaire.
De jeter votre ints:
À imprimer:
my_ints = map(lambda n: int(n[0]), your_list)
fonctionne également.Si vous voulez une liste avec le premier nombre de chaque liste,
[int(L[0]) for L in lines]
(en supposant que la liste de listes est appelélines
); si vous voulez la première deux les numéros de chaque liste (il est difficile de dire à partir de votre question),[int(s) for L in lines for s in L[:2]]
; et ainsi de suite.Si vous ne voulez pas une liste de ces numéros, mais de faire une itération sur eux, vous pouvez utiliser un générateur d'expression, c'est à dire:
ou un équivalent imbriquée-boucle d'approche tels que:
Ou si vous voulez juste les deux premiers points:
En python 3.x vous devez également placer la carte dans une liste de constructeur, à l'instar de ce
map(int, x[:2])
dans unlist()
appel est redondant dans le 2.x, depuismap()
renvoie une liste. Est-ce destiné à être un 3.x exemple?Si j'ai bien compris votre question, il est
[int x[0] for x in list_of_lists]