我想迭代我的列表并使用多个元素(而不仅仅是一个元素)执行某些操作。我想获取第一个元素和它后面的一些元素(它们可以是连续的,也可能是返回的第三个元素)。
l = ['a', 'b', 'c', 'd', 'e']
for items in l:
print items[:3]
Run Code Online (Sandbox Code Playgroud)
输出应该是:
['a', 'b', 'c'], ['b', 'c', 'd'], ['c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)
有很多好的答案,如果想跳过元素怎么办?比如说,获取一个元素,跳过下一个元素,然后获取第三个元素?
输出:
('a', 'c'), ('b','d'), ('c', 'e')
Run Code Online (Sandbox Code Playgroud)
我想枚举是处理这个问题的最佳方法?
迭代列表如此简单和优雅,我希望类似的语法允许您在元素本身的 for 循环中使用它,而不是使用范围或枚举。
l = ['a', 'b', 'c', 'd', 'e']
for items in l:
print (items[0], items[2])
Run Code Online (Sandbox Code Playgroud)
(是的,我知道如果原始列表是包含列表的列表,这段代码会给出不同的结果。 [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 将返回 [1 , 3], [4, 6], [7, 9])
l = ['a', 'b', 'c', 'd', 'e']
subarraysize = 3
for i in range(len(l)-subarraysize+1):
print l[i:i+subarraysize]
Run Code Online (Sandbox Code Playgroud)
输出:
['a', 'b', 'c']
['b', 'c', 'd']
['c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)
我知道这不是很 Pythonic,但它确实有效。