如何从两个列表中创建元组,使一个列表元素

2024-06-17 10:50:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试联接2个列表,以便第一个列表中的值按顺序联接到第二个列表中的值,然后在列表1项用完时再次联接

worker_tables=['table1','table2']

mylist = [['val1','val2'], ['val3','val4'],['val5','val6'],['val7','val8'],['val9','val10']]

mylist_tup = zip(mylist, worker_tables)

我得到的结果是——

print mylist_tup

[(['val1', 'val2'], 'table1'), (['val3', 'val4'], 'table2')] 

如您所见,它并没有从第一个列表连接回table1和table2字段

期望输出=

 [(['val1', 'val2'], 'table1'),(['val3', 'val4'], 'table2'), (['val5', 'val6'], 'table1'),(['val7', 'val8'], 'table2'), (['val9', 'val10'], 'table1')]

Tags: 列表tablesworkertable2table1val1mylistval2
2条回答

您可以按mylist的长度重复工作表列表项:

worker_tables=['table1','table2']

mylist = [['val1','val2'], ['val3','val4'],['val5','val6'],['val7','val8'],['val9','val10']]

mylist_tup = zip(mylist, worker_tables * int(len(mylist) / len(worker_tables)))

您可以使用itertools.cycle来获得所需的结果:

from itertools import cycle

mylist_tup = zip(mylist, cycle(worker_tables))

这将根据需要循环worker_tables的值

相关问题 更多 >