让我们说我想建立一个给定列表中的元组列表。有没有办法用列表理解来做到这一点,还是我需要求助于for循环?
[a,b,c,d,e] => [(a,b),(b,c),(c,d),(d,e)]
答案 0 :(得分:2)
你可以这样做:
>>> l = ['a','b','c','d','e']
>>> [(l[i],l[i+1]) for i in range(len(l)-1)]
[('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e')]
带zip:
>>> zip(l,l[1:])
[('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e')]
- 根据评论编辑
答案 1 :(得分:0)
不直接,但给定循环索引很容易,例如:
l='''a,b,c,d,e'''.split(',')
[(l[x],l[x+1]) for x in range(len(l)-1)]
输出:
[('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e')]
编辑:看起来我们几个人同时提出了这个相同的解决方案......