如何在python中更改列表

时间:2019-02-03 21:23:52

标签: python


List: [['1', '2', '4'],['1', '4', '8'],['03', '8', '6', '1', '62', '7'],['53', '8', '2', '82']]

下面的代码在列表中:

neighbor1 = [list[i:i + 2] for i in range(0, len(list), 1)]

输出:

[[['1', '2', '4'],['1', '4', '8']],[['03', '8', '6', '1', '62', '7'],['53', '8', '2', '82']]]

[[['1','2','4'],['1','4','8']],[['03','8','6','1 ','62','7'],['53','8','2','82']]]

但我想要:

 [[['1','2'],['2','4']],[['1','4'],['4','8']],[['03','8'],['8','6'],['6','1'],['1','62'],['62','7']],[['53','8'],['8','2'],['2','82']]]

2 个答案:

答案 0 :(得分:0)

您快到了,只需要再深入一层即可。

[[x[i:i+2] for i in range(len(x)-1)] for x in List]

永远不要使用关键字list作为变量名,否则您可能会遇到一些非常奇怪的事情...

答案 1 :(得分:0)

您需要按元素对元素分组。

一种典型的方法是:

for p, n in zip(your_list[:-1], your_list[1:]):
    pair = p, n

其中 p 代表每个先前的元素, n 代表每个下一个元素。

有了这些,您将可以解决您的问题。

例如:

rows = [['1', '2', '4'],
              ['1', '4', '8'],
              ['03', '8', '6', '1', '62', '7'],
              ['53', '8', '2', '82']]

result = [list(zip(row[:-1], row[1:]))
               for row in rows]

print(result)

您得到:

[[('1', '2'), ('2', '4')], [('1', '4'), ('4', '8')], [('03', '8'), ('8', '6'), ('6', '1'), ('1', '62'), ('62', '7')], [('53', '8'), ('8', '2'), ('2', '82')]]