Transformer une liste

Résolu
cha - 12 janv. 2016 à 11:42
 cha - 23 janv. 2016 à 10:40
Bonjour à tous,

Je suis débutante en python et j'ai quelques difficultés a effectuer un script.
J'espère vraiment que quelqu'un pourra m'aider.

Exemple N=['5', '12, '19']
je souhaiterais obtenir une suite de 20 chiffres 0 sauf au position données 5, 12 et 19, ou j'aimerais avoir un 1.
Je voudrais que ce soit ajustable pour n'importe qu'elle liste de chiffres c'est à dire que ce script soit valable pour tout autre exemple tel que N=['2', '15', 16', '18'].

je vous mets mon script en suivant qui ne marche que pour cette exemple. Si vous pouviez m'aider à généraliser mon script se serait super.
Merci d'avance à tous.

N=['5', '12', '19']

i=1
for i in range(1,20):
if i == int(N[0]):
print 1
elif i == int(N[1]):
print 1
elif i == int(N[2]):
print 1
else:
print 0
A voir également:

3 réponses

Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 5
Modifié par Arm.7.ageddon le 12/01/2016 à 15:06
1) mettre des entiers dans N, et pas des chaines N=[5,12,19]

2)
for i in range(1,20):
valeur = 0
if i in N:
valeur = 1
print valeur


J'imagine qu'il y a surement moyen d'écrire ça mieux, plus "pythonesque".. ;)
0
Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 5
12 janv. 2016 à 15:05
si tu n'as pas possibilité de placer des entiers dans N, alors le test "if i in N:" devient "if str(i) in N:"
0
Merciiii énormement!!
0
Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 5
12 janv. 2016 à 16:44
bah de rien :)
0
J'ai une autre question! hihi
Et maintenant si j'ai un N="32 33 36 56 63"
Comment je fais pour avoir mes positions et mes suites de 0?
0
Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 5
Modifié par Arm.7.ageddon le 18/01/2016 à 15:43
Ah... désolé, j'avais pas vu que tu avais continué :)
N="32 33 36 56 63"
N=N.split()
for i in range(0,len(N)):
N[i]=int(N[i])

et tu retombes sur le cas N=[32,33,36,56,63]
0
Merci!
0