Найти - Пользователи
Полная версия: Проблема с выводом элементов из tuple
Начало » Python для новичков » Проблема с выводом элементов из tuple
1
coced
Тут расписаны базовые структуры и операции с ним: 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
Evgeny
А как это у вас такое:

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

интерпретатор ест??
coced
Evgeny
А как это у вас такое:

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

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

b = (1, 1, 10.0)(2, 2, 20.0).replace(')', ‘)]’)
bw
> 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
KaBaSya
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) )  # напоследок,
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB