Python 使用列表乘以一个值?
我基本上在上面有一个列表,其中有一些值,如果我愿意的话 现在如果第一个值是3,第二个值是7,那么3会显示20次,7会显示100次, 然而,我希望它只是成倍增加 有没有办法不用导入任何东西就可以做到这一点 --重新编辑-- 我应该早点说出来,但我没有意识到输入值会改变任何东西,或者影响任何东西 最重要的代码是:Python 使用列表乘以一个值?,python,list,Python,List,我基本上在上面有一个列表,其中有一些值,如果我愿意的话 现在如果第一个值是3,第二个值是7,那么3会显示20次,7会显示100次, 然而,我希望它只是成倍增加 有没有办法不用导入任何东西就可以做到这一点 --重新编辑-- 我应该早点说出来,但我没有意识到输入值会改变任何东西,或者影响任何东西 最重要的代码是: n1 = 20*values[0] n2 = 100*values[1] print(n1,"\n",n2) 值是一个空列表,“数字”是输入,我想这就是你想要的 for num in n
n1 = 20*values[0]
n2 = 100*values[1]
print(n1,"\n",n2)
值是一个空列表,“数字”是输入,我想这就是你想要的
for num in numbers:
values.append(num)
当您乘以一个
int
时,数学函数将接管。但是,为了重复,只需转换为str
,然后乘以:
>>> values = [3,7]
>>> n1 = 20 * [values[0]]
>>> n2 = 5 * [values[1]]
>>> print n1
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>> print n2
[7, 7, 7, 7, 7]
编号*列表\值=产品
n1 = 20*str(values[0])
n2 = 100*str(values[1])
print(n1,"\n",n2)
如果您有一个值列表和另一个要与相应值相乘的数字列表:
In [1752]: values = [3, 7]
In [1753]: 20 * values[0]
Out[1753]: 60
然后,您可以通过以下方式获得您想要的:
values = [12, 14]
multiples = [20, 100]
见和
另一方面,如果希望通过将中的元素乘以中的元素来重复值中的元素,则可以执行以下操作:
result = [value * multiple for value, multiple in zip(values, multiples)]
现在,您可以使用repeat()
作为生成器来执行您想要的操作:
def repeat(values, repeats):
for value, rep in zip(values, repeats):
for _ in range(rep):
yield value
你期望的输出是什么?从上面看不清楚。20*str(值[0])
给出了33333
-它是你想要的输出吗?基本上我想做的是让列表中的第一个值乘以20,列表中的第二个值乘以100,例如:如果将值[0]设为12,则当它乘以20时,我会得到240等等,那么您想要60还是[3,3,3,3,…,3,3,3]
(带20个3s)?“显示20次”和“乘以20”是完全不同的事情;乘数=[20100];乘法=[i*j代表i,j在zip中(数字,乘法器)];打印成倍的
?
>>> list(repeat([3, 7], [5, 10])
[3, 3, 3, 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]