如何将列表转换为包含子列表的列表?python

2024-05-13 02:31:37 发布

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

我正在制作一个基于python的小数据库

my_list = ['jack', 'liam', 'gary', 'poly']

我想把列表转换成这个

result = [('jack', 'liam'),('liam', 'gary'),('gary', 'poly')]

还有什么我可以做的吗


Tags: 数据库列表myresultlistjackliampoly
3条回答

使用list comprehension

  • 迭代到列表的倒数第二个值
  • 以元组形式获取当前值和下一个值
my_list = ['jack', 'liam', 'gary', 'poly']
new_list = [(my_list[i],my_list[i+1]) for i in range(len(my_list)-1)]

print(new_list)
>> [('jack', 'liam'), ('liam', 'gary'), ('gary', 'poly')]

或者使用zip()

它将以元组的形式返回连续的组合

my_list = ['jack', 'liam', 'gary', 'poly']
new_list = list(zip(my_list, my_list[1:]))

print(new_list)
>> [('jack', 'liam'), ('liam', 'gary'), ('gary', 'poly')]
my_list = ['jack', 'liam', 'gary', 'poly']

result_list = [(my_list[i],my_list[i+1]) for i in range(len(my_list) - 1)]

print(result_list)

输出

[('jack', 'liam'), ('liam', 'gary'), ('gary', 'poly')]

我们可以将两个元素提取到一个元组中,直到迭代并到达最后一个元素

zip将从两个iterables返回一个元组;如果您采用相同的列表,但按照您的意愿进行了移动(在本例中,向前移动一个元素),则可以得到预期的结果

此外,发电机将在最短的iterable(第二个)上排气

>>> [(a,b) for (a,b) in zip(my_list, my_list[1:])]
[('jack', 'liam'), ('liam', 'gary'), ('gary', 'poly')]

相关问题 更多 >