如何将python字符串和整数数组相乘
我有两个不同的列表,我想合并 a=['a','B','C'] b=[2,10,120] 因此,所需的输出应如下所示: ab=['A2','B10','C120'] 我试过这个: ab=[a[i]*b[i]表示范围内的i(len(a))] 但我现在明白了,只有当我想将两个整数数组相乘时,这才有效。那么,我应该怎么做才能获得上述所需的输出呢 谢谢。您可以使用如何将python字符串和整数数组相乘,python,arrays,Python,Arrays,我有两个不同的列表,我想合并 a=['a','B','C'] b=[2,10,120] 因此,所需的输出应如下所示: ab=['A2','B10','C120'] 我试过这个: ab=[a[i]*b[i]表示范围内的i(len(a))] 但我现在明白了,只有当我想将两个整数数组相乘时,这才有效。那么,我应该怎么做才能获得上述所需的输出呢 谢谢。您可以使用zip() >>> zip(a, [str(i) for i in b]) [('A', '2'), ('B', '10'),
zip()
>>> zip(a, [str(i) for i in b])
[('A', '2'), ('B', '10'), ('C', '120')]
因此:
>>> a = ['A', 'B', 'C']
>>>
>>> b = [2, 10, 120]
>>> [y + z for (y, z) in zip(a, [str(i) for i in b])]
['A2', 'B10', 'C120']
>>>
在本例中,我们首先将b
中的每个整数转换为一个字符串,这样我们就可以进行字符串连接,然后将zip
a和b
组合在一起,这样我们就可以使用另一个列表理解和字符串连接轻松地循环新列表,以获得所需的结果。尽管zip()是首选的解决方案,我相信您的工作方式的最初问题是:
您没有将整数转换为字符串(在单击的答案中解决)
您没有添加字符串(在Click的答案中仍然不正确)
如果数组大小不同,则可能会出现问题,这一问题由zip()解决。与单击的想法相同,但稍有不同,您可以在解压缩项目后键入cast
>>> [str(y)+str(x) for y,x in zip(a, b)]
['A2', 'B10', 'C120']
不能将字符串
和int
值相乘。您必须将两者转换为字符串格式,然后将其连接起来。我执行了下面的代码,它按照您的要求实际输出。希望对您有所帮助。这不一定是最好的方法,但肯定是最好的方法之一
a = ['A', 'B', 'C']
b = [2, 10, 120]
ab=[]
for i in range(len(a)):
ab.append(a[i]+str(b[i]))
print ab
这是输出:
['A2', 'B10', 'C120']
或者更简单:
["%s%s" % x for x in zip(a, b)]
假设OP在期望的输出中有错误的引用
[elem+a[count] for count,elem in enumerate(b)]
用enumerate什么是A
,B
和C
?它们应该是a=['a','B','C']
?是的,谢谢你的观察。我做了一些修改来反映这一点。你的问题仍然很模糊<代码>ab
则是[“A2”、“B10”、“C120”]
或[“AA”、“BBBBBBBBB”、“CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC!此代码有输入错误,在2.7中也不起作用,应该是[y+z代表zip中的(y,z)[str(i)代表b中的i])]
@qwwqwq您的输入错误是正确的。除此之外,它工作得非常好:)@Sri,如果这解决了你的问题,你能接受它并+1它吗?这会给你+2的声誉@Sri我认为添加编辑是为了使元组在for
显式之后,您需要在2.7中这样做,这就是我所指的。@toclick或nottoclick您需要添加字符串(y+z表示(y,z))。请编辑,我会接受:)好吧,你可以乘,结果不是OP期望的结果,“a”*5==“aaaaa”
@qarma OP期望['A2',B10',C120']
对吗?我想他已经清楚地提到了输出应该是ab=[A2,B10,C120]
类型。你的意思是说列表中的每个元素都没有单引号?
[elem+a[count] for count,elem in enumerate(b)]