【问题标题】:How do I enumerate a list without parenthesis?如何枚举不带括号的列表?
【发布时间】:2020-03-11 06:54:35
【问题描述】:

我有这个 python 代码,但它在枚举中添加了括号。我不需要括号,那么如何在 python 中执行此操作?我所需要的只是枚举列表。这就是它的作用

num =[(0, '1'), (1, '7'), (2, '11'), (3, '13')

这是我的代码

num =['1', '7', '11', '13']
print (list(enumerate(num,0)))

下面我需要这个,但我不需要代码。

num = [1,'1', 2,'7',3,'11',4,'13'] 

【问题讨论】:

  • “我不需要括号”是什么意思
  • 嗨 kaya3,我不需要这些括号 ( )
  • 这是元组的标志
  • 如果不是您发布的,您的定义中的枚举是什么?
  • 是的,我不需要元组,但是如何更改代码以打印没有元组的新枚举列表

标签: python list enumeration


【解决方案1】:

只需运行如下循环:

num =['1', '7', '11', '13']
final_list = list()
for index, i in enumerate(num):
    final_list.extend((index, i))

print(final_list)
[0, '1', 1, '7', 2, '11', 3, '13']

【讨论】:

  • 正确的 Subhrajyoti Das 这回答了这个问题。 :)
【解决方案2】:

使用itertools.chain.from_iterable:

from itertools import chain

num =['1', '7', '11', '13']
result = list(chain.from_iterable(enumerate(num)))
print(result)

输出:

[0, '1', 1, '7', 2, '11', 3, '13']

【讨论】:

    【解决方案3】:

    从你的输出你的意思是enumerate(num,1)

    又是一条捷径。

    我们可以在将元组转换为列表后添加到一个空列表中。 + 这里连接两个列表

    import functools
    functools.reduce(lambda acc,x: acc + list(x),enumerate(num,1),[])
    

    acc 是 [] 最初是空列表并添加如 ['hello'] + [1,2] = ['hello',1,2]

    输出

    [1, '1', 2, '7', 3, '11', 4, '13']
    

    【讨论】:

      【解决方案4】:

      类似于 Yugandhar Chaudhari 的回答。

      我使用map(list, ...) 将元组转换为列表,然后我可以使用sum() 而不是+reduce() 将所有列表添加到空列表[]

      num = ['1', '7', '11', '13']
      
      print(sum(map(list, enumerate(num, 1)), []))
      

      【讨论】:

        猜你喜欢
        • 2014-03-24
        • 2016-09-16
        • 1970-01-01
        • 2019-06-16
        • 1970-01-01
        • 2017-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多