-2

i have a variable to precise the length of the tuple for expl lgt=3 i want to convert this list:

list=['Tout', 'le', 'monde', 'aime', 'le', 'chocolat', 'Le', 'est', 'une', 'source', 'agent', 'securité', 'chocolat', 'magnesium']

to :

('Tout', 'le', 'monde')
('le', 'monde', 'aime')
('monde', 'aime', 'le')
('aime', 'le', 'chocolat')
('le', 'chocolat', 'Le')
('chocolat', 'Le', 'est')
('Le', 'est', 'une')
('est', 'une', 'source')
('une', 'source', 'agent')
('source', 'agent', 'securité')
('agent', 'securité', 'chocolat')
('securité', 'chocolat', 'magnesium')
('chocolat', 'magnesium', '')
chepner
  • 497,756
  • 71
  • 530
  • 681

2 Answers2

0

The main points: 1. use tuple(list). 2. use slice of list. ex) list[i:i+3].

list=['Tout', 'le', 'monde', 'aime', 'le', 'chocolat', 'Le', 'est', 'une', 'source', 'agent', 'securité', 'chocolat', 'magnesium']
tuples = []

list.append('')
lgt = 3
for i in range(len(list)-lgt+1):
    tuples.append(tuple(list[i:i+lgt]))

print (tuples)

Refer the following result:

[('Tout', 'le', 'monde'), ('le', 'monde', 'aime'), ('monde', 'aime', 'le'), ('aime', 'le', 'chocolat'), ('le', 'chocolat', 'Le'), ('chocolat', 'Le', 'est'), ('Le', 'est', 'une'), ('est', 'une', 'source'), ('une', 'source', 'agent'), ('source', 'agent', 'securité'), ('agent', 'securité', 'chocolat'), ('securité', 'chocolat', 'magnesium'), ('chocolat', 'magnesium', '')]
yaho cho
  • 1,779
  • 1
  • 7
  • 19
0
list=['Tout', 'le', 'monde', 'aime', 'le', 'chocolat', 'Le', 'est', 'une', 'source', 'agent', 'securité', 'chocolat', 'magnesium']

print ([tuple(list[i:i + 3]) for i in range(len(list) - 1)])

output:

[('Tout', 'le', 'monde'), ('le', 'monde', 'aime'), ('monde', 'aime', 'le'), ('aime', 'le', 'chocolat'), ('le', 'chocolat', 'Le'), ('chocolat', 'Le', 'est'), ('Le', 'est', 'une'), ('est', 'une', 'source'), ('une', 'source', 'agent'), ('source', 'agent', 'securité'), ('agent', 'securité', 'chocolat'), ('securité', 'chocolat', 'magnesium'), ('chocolat', 'magnesium')]

or:

for i in range(len(list)-1):
    print (tuple(list[i:i + 3]))

output:

('Tout', 'le', 'monde')
('le', 'monde', 'aime')
('monde', 'aime', 'le')
('aime', 'le', 'chocolat')
('le', 'chocolat', 'Le')
('chocolat', 'Le', 'est')
('Le', 'est', 'une')
('est', 'une', 'source')
('une', 'source', 'agent')
('source', 'agent', 'securité')
('agent', 'securité', 'chocolat')
('securité', 'chocolat', 'magnesium')
('chocolat', 'magnesium')
ncica
  • 7,015
  • 1
  • 15
  • 37