首页 > 解决方案 > 转换元组列表,使得 [(a,b,c)] 转换为 [(a,b),(a,c)]

问题描述

关于我将如何做到这一点的想法?我希望元组中的第一个值与每个连续值配对。这样,每个结果元组都是从第一个值开始的一对。

我需要这样做: [(a,b,c)] --> [(a,b),(a,c)]

标签: pythonpython-3.xlisttuples

解决方案


你可以试试这个。

(t,)=[('a','b','c')]

[(t[0],i) for i in t[1:]]
# [('a', 'b'), ('a', 'c')]

使用itertools.product

it=iter(('a','b','c'))
list(itertools.product(next(it),it))
# [('a', 'b'), ('a', 'c')]

使用itertools.repeat

it=iter(('a','b','c'))
list(zip(itertools.repeat(next(it)),it))
# [('a', 'b'), ('a', 'c')]

推荐阅读