在Python中添加两个列表

Geo*_*ows 5 python string int list

我试图将两个列表添加在一起,因此一个列表的第一项添加到另一个列表的第一项,第二项添加到第二项,依此类推以形成新列表.

目前我有:

def zipper(a,b):
    list = [a[i] + b[i] for i in range(len(a))]
    print 'The combined list of a and b is'
    print list

a = input("\n\nInsert a list:")
b = input("\n\nInsert another list of equal length:")

zipper(a,b)
Run Code Online (Sandbox Code Playgroud)

在输入两个列表时,其中一个是整数列表,一个是字符串列表,我得到类型错误'不能cocanenate'str'和'int'对象.

我尝试使用以下命令将两个列表转换为字符串

list = [str(a[i]) + str(b[i]) for i in range(len(a))]
Run Code Online (Sandbox Code Playgroud)

但是在进入时:

a = ['a','b','c','d']
b = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我得到的输出为:

[ 'A1', 'B2', 'C3', 'D4']

而不是我想要的是:

['a+1','b+2','c+3','d+4']
Run Code Online (Sandbox Code Playgroud)

有没有人对我做错了什么有任何建议?

注意我必须编写一个与zip(a,b)基本相同的函数,但我不允许在函数的任何地方使用zip().

Ign*_*ams 9

首先压缩,然后添加(仅限不).

['%s+%s' % x for x in zip(a, b)]
Run Code Online (Sandbox Code Playgroud)


lc2*_*817 3

你应该做什么

你应该使用

list = [str(a[i]) +"+"+ str(b[i]) for i in range(len(a))]

代替

list = [str(a[i]) + str(b[i]) for i in range(len(a))]
Run Code Online (Sandbox Code Playgroud)

在您的版本中,您从未说过您希望在两个元素之间的输出中使用加号字符。这是你的错误。

示例输出:

>>> a = [1,2,3]
>>> b = ['a','b','c']
>>> list = [str(a[i]) +"+"+ str(b[i]) for i in range(len(a))]
>>> list
['1+a', '2+b', '3+c']
Run Code Online (Sandbox Code Playgroud)