Уведомления

Группа в Telegram: @pythonsu

#1 Июль 6, 2010 14:34:02

coced
От:
Зарегистрирован: 2010-07-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом элементов из tuple

Тут расписаны базовые структуры и операции с ним: http://www.helloworld.ru/texts/comp/lang/python/python2/index.htm#3

Пробую следующий пример:

>>> a = (1, 2, 3)
>>> print a[0], a[2], a[-1]
1 3 3
Как видите, всё работает. Проблема в другом примере


Мне нужно выводить числа из этой строчки: (1, 1, 10.0)(2, 2, 20.0), чтобы все числа можно было бы приравнять определённым значениям (делаю update множеству строк в базе данных)
b1 = 1,
b2 = 1
b3 = 10.0
c1 = 2
c2 = 2
c3 = 20.0
групп чисел (что в скобочках) может быть больше двух.

Поэтому я написал следующий код. К сожалению, он работает не так как я хочу. В чём ошибка? Как получить нужный результат?
>>> b = (1, 1, 10.0)(2, 2, 20.0).replace(')', ')]')
>>> b = b.split(']')
>>> for b_ in b:
... print b_[0], b_[1], b_[2]
( 1 ,
( 2 ,
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
IndexError: string index out of range
( 1 ,
( 2 ,
вместо ожидаемых
1 1 10.0
2 2 20.0
Итак, в чём моя ошибка и как получить нужный результат?

Работаю в '2.6 (r26:66721, Oct 2 2008, 11:35:03) ',
WinXP



Отредактировано (Июль 6, 2010 15:02:19)

Офлайн

#2 Июль 6, 2010 14:44:02

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом элементов из tuple

А как это у вас такое:

b = (1, 1, 10.0)(2, 2, 20.0).replace(')', ')])

интерпретатор ест??



Офлайн

#3 Июль 6, 2010 15:03:31

coced
От:
Зарегистрирован: 2010-07-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом элементов из tuple

Evgeny
А как это у вас такое:

b = (1, 1, 10.0)(2, 2, 20.0).replace(')', ')])

интерпретатор ест??
Спасибо, при опечатался в форуме. В command prompt вводил без ошибок.

b = (1, 1, 10.0)(2, 2, 20.0).replace(')', ‘)]’)



Офлайн

#4 Июль 6, 2010 15:32:20

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Проблема с выводом элементов из tuple

> b = (1, 1, 10.0)(2, 2, 20.0).replace(')', ‘)]’)
Приопечатался ещё раз?

>>> '(1, 1, 10.0)(2, 2, 20.0)'.strip('()').split(')(')
['1, 1, 10.0', '2, 2, 20.0']
>>> for items in _:
... print map(str.strip, items.split(','))
...
['1', '1', '10.0']
['2', '2', '20.0']
..bw



Офлайн

#5 Июль 7, 2010 18:41:19

KaBaSya
От:
Зарегистрирован: 2009-12-17
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с выводом элементов из tuple

b = (1, 1, 10.0) + (2, 2, 20.0)  #так можно получить сумму двух кортежей, то есть (1, 1, 10.0, 2, 2, 20.0)
b = ((1, 1, 10.0), (2, 2, 20.0) ) # кортеж из двух елементов, которые тоже кортежи.
Я собственно не понимаю что ты хочешь.
может
b = ((1, 1, 10.0),  (2, 2, 20.0) )  # кортеж из двух елементов, которые тоже кортежи.
for item in b:
for elem in item:
print elem
Как сюда ты приплёл строки и зачем… ай ладно :/
(e1, e2, e3), (e4, e5, e6) = ((1, 1, 10.0),  (2, 2, 20.0) )  # напоследок,



Отредактировано (Июль 7, 2010 18:46:19)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version