我已经看了几个问题Iterating over every two elements in a list和Python "Every Other Element" Idiom,他们已经得出了一个答案,我可能会被迫使用,但我觉得有更好的方法;我想用下面的代码做的是能够打印每两个或每4个元素
Gun_rack =(
'Gun 1:', 'Colt New Frontier 44 Special', 'Cal:.44 ', 'Weight: 2.8 lbs', 'Ammo Capacity :6',
'Gun 2:', 'Smith & Wesson SW1911DK' , 'Cal:.45 ACP ', 'Weight: 2.6 lbs', 'Ammo Capacity :9',
'Gun 3:', 'Heckler & Koch P2000SK V2', 'Cal.357 ', 'Weight: 1.50 lbs', 'Ammo Capacity :13',
'Gun 4:', 'Magnum Research Desert Eagle', 'Cal.50 ', 'Weight: 4.46 lbs', 'Ammo Capacity :7',
'Gun 5:', 'Heckler & Koch MP5K ', 'Cal 9mm ', 'Weight: 4.78 lbs', 'Ammo Capacity :30',
)
我知道如果我使用字典,我可以打印每个键和值参数,如python教程中给出的示例,但项目是随机顺序因此元组
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.iteritems():
... print k, v
...
gallahad the pure
robin the brave
我希望在列表或元组中使用类似的代码:
for a ,b in Gun_rack:
print a,b
或
for a,b,c,d, in Gun_rack:
print a,b,c,d,
我想我应该提到输出应该是什么,而不是通过元组步进并打印每个第2个元素或每个第4个元素,它应该通过元组并打印每2个元素然后接下来的2个元素,直到元组结束。
答案 0 :(得分:10)
要打印所有其他元素:
for elem in Gun_rack[::2]:
print elem
和其他所有元素,从第二个元素开始:
for elem in Gun_rack[1::2]:
print elem
当然,要完成每个第四个元素,只需将2更改为4.这样做的原因是因为slice
个对象(当你执行a[:]
时隐式创建)取3个参数 - - 开始,停止,跨步。在这里,我们正在指定步幅。