2015-05-08 2 views
0
n1 = 20*values[0] 
n2 = 100*values[1] 
print(n1,"\n",n2) 

Я в основном получили список выше этого, с несколькими значениями, только если быИспользование списка для умножения значения?

в настоящее время, если у меня есть 3 в первом значении и 7 во втором, 3 будет отображаться в 20 раз , и 7 будет отображаться 100 раз, , однако я бы хотел, чтобы он просто умножался.

Есть ли способ сделать это, не импортируя ничего?

--edited again-- Я должен был сказать это гораздо раньше, но я не понимал, введенные значения будут ничего менять, или фактор во что-нибудь из этого верхней части кода у меня есть:

for num in numbers: 
values.append(num) 

со значениями, являющихся пустой список, а «номера» является Input

+0

Каков ваш желаемый результат? Это неясно из вышесказанного. – fixxxer

+0

'20 * str (значения [0])' дает '33333333333333333333' - это вы хотите вывести? –

+0

Баскиально, что я пытаюсь сделать, это мое первое значение в списке, умноженное на 20, а мое второе значение в списке, умноженное на 100, , например: говоря, что значение [0] равно 12, дало бы мне 240 поскольку его умножается на 20 – QQKreyo

ответ

1

Я думаю, что это то, что вы хотите

>>> 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] 
0

Когда вы MULTIP в соответствии с int, математические функции берут верх. Однако, для того, чтобы повторения, просто преобразовать в str умножает:

n1 = 20*str(values[0]) 
n2 = 100*str(values[1]) 
print(n1,"\n",n2) 
1

номер * list_value = продукт

In [1752]: values = [3, 7] 

In [1753]: 20 * values[0] 
Out[1753]: 60 
0

Если у вас есть список значений и другой список номеров для умножения соответствующего значения с:

values = [12, 14] 
multiples = [20, 100] 

Затем, вы можете получить то, что вы хотите с:

result = [value * multiple for value, multiple in zip(values, multiples)] 

См. zip и list comprehensions.

Если, с другой стороны, вы хотите повторить элементы в values элементами в multiples, вы можете сделать:

def repeat(values, repeats): 
    for value, rep in zip(values, repeats): 
     for _ in range(rep): 
      yield value 

Теперь вы можете использовать repeat() как генератор, чтобы сделать то, что вы хотите :

>>> list(repeat([3, 7], [5, 10]) 
[3, 3, 3, 3, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7] 
Смежные вопросы