Форум сайта python.su
Есть кортеж
Нужно сделать чтобы было просто число 1000 типа int.
Офлайн
- это не кортеж, это список содержащий кортеж
a = [(1000), ]
b = int(a[0][0])
print b
Офлайн
Спасибо.
Только объясните пожалуйста, что значит a?
Офлайн
In [5]: a = [(1000,), ]
In [6]: a
Out[6]: [(1000,)]
In [7]: a[0] # первый элемент списка []
Out[7]: (1000,)
In [8]: a[0][0] # первый элемент, первого элемента списка - собственно число внутри кортежа
Out[8]: 1000
Офлайн
Большое спасибо.
Офлайн
Если не сложно, не могли бы еще и тут подсказать.
Два кортежа
Мне нужно пробежаться по ним и сделать следующее: (1*127 + 2*237 + 1.3*2389 + 1.5*589)/количество НЕ нулей(в любом из кортежей)
То есть, мы бежим по первому кортежу и второму кортежу, перемножаем числа соответствующие, где нули - пропускаем, в принципе можно и умножить и сложить, ведь всё равно N + 0 = N поэтому я думаю это не важно. А далее получившееся значение делим на количество НЕ нулей.
В обоих кортежах строго по 11 элементов.
Заранее спасибо.
Офлайн
import numpy as np
a=np.array([1, 0, 2, 1.3, 1.5, 0, 0, 0, 0, 0, 0])
b=np.array([127, 0, 237, 2389, 589, 0, 0, 0, 0, 0, 0])
c=a*b
c=c[c!=0]
print np.mean(c)
Отредактировано (Дек. 11, 2011 17:44:37)
Офлайн
А поделить на количество НЕ нулевых элементов одного из кортежа?
И еще. Вот у меня есть кортеж. Допустим кортеж K. Как мне из него сделать np.array?
Отредактировано (Дек. 11, 2011 21:03:23)
Офлайн
Это перемножение:
for i in range(len(mas1)):
if mas1[i] != 0:
mas3[i] = mas1[i] * mas2[i]
for i in range(len(mas1)):
if mas1[i] != 0:
j = j+1
Отредактировано (Дек. 11, 2011 23:28:51)
Офлайн
без numpy
sum(x * y for x, y in zip(tuple1, tuple2)) / sum(1 for x in tuple1 if x)
Офлайн