修改Python 3.6.4列表元素

时间:2018-02-18 22:56:35

标签: python python-3.x list

所以我有2个名单:

L1 = ['a', 'b', 'c', 'd']
L2 = ['1', '2', '3', '4']

我需要我的结果看起来像这样:

['a1', 'b2', 'c3', 'd4']

我使用了for循环,但我似乎无法做到正确。这就是我所做的:

L3 = []
L1 = ['a', 'b', 'c', 'd']
L2 = ['1', '2', '3', '4']
for i in range(len(L1)):
     L3 += L1[i] + L2[i]
print(L3)

我的结果最终看起来像:

['a', '1', 'b', '2', 'c', '3', 'd', '4']

这就是我的全部。任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:7)

zip函数生成一个迭代器,它按顺序从每个参数返回元组:

L3 = [x + y for x, y in zip(L1, L2)]

文档:https://docs.python.org/3/library/functions.html#zip

答案 1 :(得分:4)

L3 += L1[i] + L2[i]相当于L3.extend(L1[i] + L2[i])

L1[i] + L2[i]是一个类似'a1'的字符串。 extend期望一个可迭代的,它会将每个元素附加到列表中。因此,它迭代你的'a1'字符串并将元素'a'和'1'附加到列表中。

您希望append代替字符串:

L3.append(L1[i] + L2[i])

Mark Tolonen指出,

L3 += [L1[i] + L2[i]]

也有效。它相当于L3.extend([L1[i] + L2[i]]),例如L3.extend(['a1'])。在这种情况下,extend会将它收到的列表中唯一的元素作为参数'a1'附加到L3。

答案 2 :(得分:1)

您只需将+=操作更改为.append

即可
for i in range(len(L1)):
    L3.append(L1[i] + L2[i])

答案 3 :(得分:0)

L3 = []
L1 = ['a', 'b', 'c', 'd']
L2 = ['1', '2', '3', '4']
for i in range(len(L1)):
     L3.append(str(L1[i])+str(L2[i]))
print(L3)

答案 4 :(得分:0)

与使用列表理解的另一个答案类似:

L3 = [L1[i]+L2[i] for i in range(len(L1))]