Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

transformation de liste en liste de tuples

16 réponses
Avatar
Franssoa
Bonjour,

Problème certainement trivial, mais je sèche un peu. Comment passer
simplement de :
a = [1,2,3,4,5,6,7,8]
à :
a = [(1,2),(3,4),(5,6),(7,8)]
ou :
a = [[1,2],[3,4],[5,6],[7,8]]

Merci de vos lumières
Franssoa

10 réponses

1 2
Avatar
jean-michel bain-cornu
Bonjour,
Problème certainement trivial, mais je sèche un peu. Comment passer
simplement de :
a = [1,2,3,4,5,6,7,8]
à :
a = [(1,2),(3,4),(5,6),(7,8)]
ou :
a = [[1,2],[3,4],[5,6],[7,8]]


a = [1,2,3,4,5,6,7,8]
[(a[x],a[x+1]) for x in range(0,len(a),2)]
[(1, 2), (3, 4), (5, 6), (7, 8)]



[[a[x],a[x+1]] for x in range(0,len(a),2)]
[[1, 2], [3, 4], [5, 6], [7, 8]]




A+
jm



Avatar
Franssoa
Comment passer simplement de :
a = [1,2,3,4,5,6,7,8]
à :
a = [(1,2),(3,4),(5,6),(7,8)]

[(a[x],a[x+1]) for x in range(0,len(a),2)]
[(1, 2), (3, 4), (5, 6), (7, 8)]



jm


Merci !
--
Franssoa




Avatar
MC
Bonjour !

a = [1,2,3,4,5,6,7,8]
zip(a[::2],a[1::2])





--
@-salutations

Michel Claveau
Avatar
MC
Re!

+ tordu, mais, AMHA, + pheune :

a = [1,2,3,4,5,6,7,8]
map(None,a[::2],a[1::2])

--
@-salutations

Michel Claveau
Avatar
Elby
Bonjour,

Problème certainement trivial, mais je sèche un peu. Comment passer
simplement de :
a = [1,2,3,4,5,6,7,8]
à :
a = [(1,2),(3,4),(5,6),(7,8)]
ou :
a = [[1,2],[3,4],[5,6],[7,8]]

Merci de vos lumières
Franssoa


une autre façon de faire avec des itérateurs :
a
[1, 2, 3, 4, 5, 6, 7, 8]



it = iter(a)
zip(it, it)
[(1, 2), (3, 4), (5, 6), (7, 8)]




--
Elby



Avatar
MCI, Shadok Gouroudoudou
Bonsoir !

a = [1,2,3,4,5,6,7,8]
it = iter(a)
zip(it, it)



J'aime bien ; ça "tombe sous le sens".






--
@-salutations

Michel Claveau


Avatar
Franssoa
Bonsoir !

a = [1,2,3,4,5,6,7,8]
it = iter(a)
zip(it, it)



J'aime bien ; ça "tombe sous le sens".
C'est aussi ma préféré (comme dirais mon fils).


Merci à tous !

Fransso.



Avatar
Franck Pommereau
a = [1,2,3,4,5,6,7,8]
it = iter(a)
zip(it, it)





Dans le même genre : comment transformer [0, 1, 2, 3, 4] en [(0, 1), (1,
2), (2, 3), (3, 4)] ?

Ma solution pour le moment est :

l = [0, 1, 2, 3, 4]
r = []
x = l[0]
for y in l[1:] :
r.append((x,y))
x = y

Mais j'aimerais faire ça d'une expression... (Question d'élégance.) Des
idées ?

Franck




Avatar
Maric Michaud
a = [1,2,3,4,5,6,7,8]
it = iter(a)
zip(it, it)





Dans le même genre : comment transformer [0, 1, 2, 3, 4] en [(0, 1), (1,
2), (2, 3), (3, 4)] ?

Ma solution pour le moment est :

l = [0, 1, 2, 3, 4]
r = []
x = l[0]
for y in l[1:] :
r.append((x,y))
x = y

Mais j'aimerais faire ça d'une expression... (Question d'élégance.) Des
idées ?



In [81]: [ (i, i+1) for i in xrange(5) ]
Out[81]: [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]

ou

In [91]: import string

In [92]: l = string.letters[:5]

In [93]: [ (l[i], l[i+1]) for i in xrange(len(l)-1) ]
Out[93]: [('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e')]





Avatar
Gerard Flanagan
On May 29, 1:06 pm, Franck Pommereau
wrote:
a = [1,2,3,4,5,6,7,8]
it = iter(a)
zip(it, it)





Dans le même genre : comment transformer [0, 1, 2, 3, 4] en [(0, 1), (1,
2), (2, 3), (3, 4)] ?



a = [0,1,2,3,4]
for X in zip(a, a[1:]):
print X

(0, 1)
(1, 2)
(2, 3)
(3, 4)





1 2