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().
你应该使用
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)