【发布时间】:2021-09-05 06:03:36
【问题描述】:
我有以下列表,并希望拆分为具有先前字母数字值的子列表
list = ['P1', 'P2', 'P3', 'P4', 'P5'..........']
预期输出:
output = [['P1', 'P2'],['P2', 'P3'],['P3', 'P4'],['P4', 'P5'],........]
有没有人能解释一下
【问题讨论】:
我有以下列表,并希望拆分为具有先前字母数字值的子列表
list = ['P1', 'P2', 'P3', 'P4', 'P5'..........']
预期输出:
output = [['P1', 'P2'],['P2', 'P3'],['P3', 'P4'],['P4', 'P5'],........]
有没有人能解释一下
【问题讨论】:
这可能不是最“Pythonic”的方式,但这里有一个解决方案:
input_list = ['P1', 'P2', 'P3', 'P4', 'P5']
output_list = []
for i in range(1, len(input_list)):
output_list.append([input_list[i-1], input_list[i]])
print(output_list)
# [['P1', 'P2'], ['P2', 'P3'], ['P3', 'P4'], ['P4', 'P5']]
【讨论】:
你可以这样做,
>>> n = 2
>>> l = ['P1', 'P2', 'P3', 'P4']
>>> [l[i:i+n] for i in range(0, len(l), n)]
[['P1', 'P2'], ['P3', 'P4']]
>>>
【讨论】:
使用列表推导:
>>> l1 = ['A', 'B', 'C', 'D', 'E']
>>> [(x,y) for x,y in zip(l1,l1[1:])]
[('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E')]
>>>
【讨论】: