我正在尝试编写一个将序列号添加到列表中每个项目的函数
example function(['a', 'b', 7]) output---> [(1, 'a'), (2, 'b'), (3, 7)]
我现在有
def example(el2):
el1=list(range(len(el2)))
new=list(map((lambda LL: [el1,LL]),el2))
return new
但是它给了我
[[[0, 1, 2], 'a'], [[0, 1, 2], 'b'], [[0, 1, 2], 7]]
不是所需的输出
答案 0 :(得分:2)
只需将list
与enumerate
一起使用,并提供start
的{{1}}自变量:
1
答案 1 :(得分:1)
您可以使用list comprehension
:
input_list = ['a', 'b', 7]
output_list = [(i,e) for i, e in enumerate(input_list, start=1)]
或使用函数:
def example(input_list):
return [(i,e) for i,e in enumerate(input_list, start=1)]
output_list = example(input_list)
答案 2 :(得分:0)
有很多方法可以做到这一点,一种简单的方法是使用一个计数器遍历输入列表。基本上,输出是(item-count,item),所以这似乎是一个很好的方法。
input_list = ['a', 'b', 7 ]
def example(el2):
output = []
for i in range(len(el2)):
output.append((i+1, el2[i]))
return output
print(str(example(input_list)))
我不喜欢lambda函数(在任何编程语言中都是这样),因为(IMMHO)它们使可读性较低的代码成为可能。