【问题标题】:Enumerate and get the first item of each tuple?枚举并获取每个元组的第一项?
【发布时间】:2022-01-06 16:16:22
【问题描述】:

如何从中获得:

col = [('red', '132', '234'), ('green', '236', '434'), ('brown', '542', '457')]

对此:
编辑(不带任何引号)

1 red, 2 green, 3 brown   # enumerate and get the first item of each tuple.

我试过了,但它不起作用:

[zip(((enumerate(col),1),i[0])) for i in col]

请只使用内置函数。

【问题讨论】:

  • [f"{i} {color}" for i, (color,_,_) in enumerate(col, 1)]

标签: python loops enumerate


【解决方案1】:

您可以使用列表推导。

>>> col = [('red', '132', '234'), ('green', '236', '434'), ('brown', '542', '457')]
>>>
>>> ["{} {}".format(index, first) for index, (first, *_) in enumerate(col, start=1)]
['1 red', '2 green', '3 brown']

【讨论】:

  • 能否请您从结果中删除引号并使其不是列表?查看编辑。
  • @user17850871 你可以加入列表', '.join(["{} {}".format(index, first) for index, (first, *_) in enumerate(col, start=1)])
  • 此后引号继续保留。有什么想法吗?
  • @user17850871 你print(', '.join(["{} {}".format(index, first) for index, (first, *_) in enumerate(col, start=1)]))了吗?
  • 正确。好的,谢谢
【解决方案2】:

首先使用带有适当起始值的enumerate。接下来,解压缩结果元组以获取您需要的值。最后,使用 f 字符串根据数字和颜色名称创建所需的字符串。

[f"{i} {color}" for i, (color, _, _) in enumerate(col, 1)]

【讨论】:

    【解决方案3】:
    print([f"{i + 1} {each[0]}" for i, each in enumerate(col)])
    

    【讨论】:

      猜你喜欢
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-22
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多