将两个有序列表组合成列表

时间:2018-11-06 22:50:17

标签: python python-3.x list

我正在尝试编写一个将序列号添加到列表中每个项目的函数

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]] 

不是所需的输出

3 个答案:

答案 0 :(得分:2)

只需将listenumerate一起使用,并提供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)它们使可读性较低的代码成为可能。