Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 10, 2011 20:54:28

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Есть кортеж
Нужно сделать чтобы было просто число 1000 типа int.



Офлайн

#2 Дек. 10, 2011 21:33:11

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Кортеж, число

- это не кортеж, это список содержащий кортеж

a = [(1000), ]
b = int(a[0][0])
print b

Офлайн

#3 Дек. 10, 2011 22:07:37

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Спасибо.
Только объясните пожалуйста, что значит a?



Офлайн

#4 Дек. 10, 2011 22:49:24

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Кортеж, число

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

Офлайн

#5 Дек. 11, 2011 00:03:03

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Большое спасибо.



Офлайн

#6 Дек. 11, 2011 17:36:37

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Если не сложно, не могли бы еще и тут подсказать.

Два кортежа




Мне нужно пробежаться по ним и сделать следующее: (1*127 + 2*237 + 1.3*2389 + 1.5*589)/количество НЕ нулей(в любом из кортежей)

То есть, мы бежим по первому кортежу и второму кортежу, перемножаем числа соответствующие, где нули - пропускаем, в принципе можно и умножить и сложить, ведь всё равно N + 0 = N поэтому я думаю это не важно. А далее получившееся значение делим на количество НЕ нулей.
В обоих кортежах строго по 11 элементов.

Заранее спасибо.



Офлайн

#7 Дек. 11, 2011 17:43:24

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Кортеж, число

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)

Офлайн

#8 Дек. 11, 2011 20:55:34

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

А поделить на количество НЕ нулевых элементов одного из кортежа?

И еще. Вот у меня есть кортеж. Допустим кортеж K. Как мне из него сделать np.array?



Отредактировано (Дек. 11, 2011 21:03:23)

Офлайн

#9 Дек. 11, 2011 23:27:43

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Это перемножение:

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
doza_and, с Вашим кодом не разобрался, но всё-равно спасибо большое за ответ.



Отредактировано (Дек. 11, 2011 23:28:51)

Офлайн

#10 Дек. 12, 2011 03:48:52

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Кортеж, число

без numpy

sum(x * y for x, y in zip(tuple1, tuple2)) / sum(1 for x in tuple1 if x)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version