python - 打印元组中的每 2 个元素

标签 python iteration tuples

我看了几个问题Iterating over every two elements in a listPython "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 个元素,直到元组的结尾。

最佳答案

打印所有其他元素:

for elem in Gun_rack[::2]:
   print elem

和所有其他元素,从第二个元素开始:

for elem in Gun_rack[1::2]:
   print elem

当然,要执行每四个元素,只需将 2 更改为 4。这样做的原因是因为 slice 对象(在执行 a[:] 时隐式创建) ) 接受 3 个参数 -- start,stop,stride。在这里,我们指定步幅。

关于python - 打印元组中的每 2 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12609983/

相关文章:

python - 试图查看变量是否包含在 django 的列表中

tuples - 在 C# 7 中是否可以将元组解构为方法参数

python - 从 suds.client 导入客户端失败

python - 使用 python ElementTree 过滤 xml/nessus 扫描

python - 使用 Python 下载 Sharepoint 文件夹中的所有文件?

python - 如何在 ReportLab 段落中插入回车符?

javascript - 比较不同大小和维度的数组

php - foreach 根据点击的复选框数量不断迭代

algorithm - 递归与迭代

python:使用元组的多个变量