我有一个总是包含偶数个元素的列表 我想迭代这个列表来创建一个包含的新列表 列表中每2个连续数字的列表。
例如:
first_list = [1,2,3,4,5,6,7,8]
second_list = [[1,2], [3,4], [5,6], [7,8]]
当我遍历列表时,我无法弄清楚如何选择连续的对。我尝试了一百万种变体,这是我最接近的变种。
first_list = [1,2,3,4,5,6,7,8]
second_list = []
pairs = 1
for item in range(len(first_list) - pairs):
second_list.append([firs_list[item],first_list[item + pairs]])
print second list
[[1, 5], [5, 7], [7, 6], [6, 2], [2, 3], [3, 4], [4, 8]]
我是否有某种方式让for循环遍历其他每一项?
答案 0 :(得分:1)
此代码应该这样做:
postName
输出:
isRequired
答案 1 :(得分:0)
您可以组合itertools模块中的功能。如果没有最外面的map
,它会返回一个元组列表,而map
会将其转换为列表列表:
>>> from itertools import cycle, compress, izip
>>>
>>> lst = [1,2,3,4,5,6,7,8]
>>> map(list, izip(compress(lst, cycle([1, 0])), compress(lst, cycle([0, 1]))))
[[1, 2], [3, 4], [5, 6], [7, 8]]
答案 2 :(得分:0)
你快到了。你需要为范围使用更多的参数。
简单修复:
for item in range(0, len(first_list) - 1, 2):
second_list.append([first_list[item],first_list[item + 1]])
print second_list
range的参数是range(start, stop[, step])
,并告诉它从零开始到长度为1并使用两步。