假设我有一个如下所示的列表:
['item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7', 'item8', 'item9', 'item10']
使用Python,我如何从中获取对,其中每个项目都包含在一对与之前和之后的项目中?
['item1', 'item2']
['item2', 'item3']
['item3', 'item4']
['item4', 'item5']
['item5', 'item6']
['item6', 'item7']
['item7', 'item8']
['item8', 'item9']
['item9', 'item10']
看起来像是我可以一起破解的东西,但我想知道是否有人拥有他们之前使用的优雅解决方案?
答案 0 :(得分:11)
快速而简单的方法就是:
a = ['item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7', 'item8', 'item9', 'item10']
print zip(a, a[1:])
将产生以下结果:
[('item1', 'item2'), ('item2', 'item3'), ('item3', 'item4'), ('item4', 'item5'), ('item5', 'item6'), ('item6', 'item7'), ('item7', 'item8'), ('item8', 'item9'), ('item9', 'item10')]
答案 1 :(得分:3)
查看itertools
documentation中的pairwise
食谱。
答案 2 :(得分:1)
这应该可以解决问题:
[(foo[i], foo[i+1]) for i in xrange(len(foo) - 1)]