如何从单个python列表(例如B_tuple_list = [(3,2), (2,1), (1,0), (0,5), (5,4)]
)创建单个元组列表,例如A_python_list = [3, 2, 1, 0, 5, 4]
。
谢谢。
答案 0 :(得分:3)
您可以使用list comprehension
尝试以下内容:
a_list = [3, 2, 1, 0, 5, 4]
tuple_list = [(a_list[i], a_list[i+1]) for i in range(len(a_list)-1)]
print(tuple_list)
结果:
[(3, 2), (2, 1), (1, 0), (0, 5), (5, 4)]
答案 1 :(得分:3)
您也可以使用zip
l = [3, 2, 1, 0, 5, 4]
print(list(zip(l, l[1:])))
# [(3, 2), (2, 1), (1, 0), (0, 5), (5, 4)]
答案 2 :(得分:2)
itertools recipes中提供的解决方案几乎不使用任何中间存储:
from itertools import tee
def pairwise(iterable):
a, b = tee(iterable)
next(b, None)
return list(zip(a, b))
print(pairwise([1, 2, 3, 4])) # [(1, 2), (2, 3), (3, 4)]
通过将强制转换移到list
,可以使其返回一个轻量级迭代器。
答案 3 :(得分:1)
使用列表推导。
>>> a = [3, 2, 1, 0, 5, 4]
>>> b = [(a[x], a[x+1]) for x in range(len(a))]
>>> print b
[(3, 2), (2, 1), (1, 0), (0, 5), (5, 4)]
答案 4 :(得分:1)
使用 zip
:
a_list = [3, 2, 1, 0, 5, 4]
tuple_list = [(x, y) for x, y in zip(a_list, a_list[1:])]
# [(3, 2), (2, 1), (1, 0), (0, 5), (5, 4)]
或者简单地说,
tuple_list = list(zip(a_list, a_list[1:]))