在一个tup中每两个元素打印一次

2024-10-02 20:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经看了几个问题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教程中给出的示例一样打印每个键和值参数,但是这些项是按随机顺序排列的,因此是元组

^{pr2}$

我希望对list或tuple使用类似的代码:

for a ,b in Gun_rack:
   print a,b

或者

for a,b,c,d, in Gun_rack:
  print a,b,c,d,

我想我应该提到输出应该是什么,而不是一步一步地遍历元组,每2个元素或每4个元素打印一次,而是遍历元组,每两个元素打印一次,然后再打印下两个元素,直到元组结束。在


Tags: 代码in元素forlistcal元组capacity
1条回答
网友
1楼 · 发布于 2024-10-02 20:33:15

要打印其他元素:

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

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

^{pr2}$

当然,要做每四个元素,只需将2改为4。这样做的原因是因为slice对象(当你做a[:]时是隐式创建的)有3个参数开始、停止、跨步。这里,我们指定步幅。在

相关问题 更多 >