Принуждение кортежей внутри кортежей? - PullRequest
2 голосов
/ 06 января 2010

У меня есть функция python, которая должна циклически перебирать кортеж координат и печатать их содержимое:

def do(coordList):
    for element in coordList:
        print element
y=((5,5),(4,4))
x=((5,5))

Когда функция y запускается через функцию, она выдает (5,5) и (4,4) желаемый результат. Тем не менее, прогон x через функцию выводит 5 и 5.

Есть ли способ заставить x быть определенным как кортеж внутри кортежа, и если нет, как проще всего решить эту проблему?

Ответы [ 5 ]

10 голосов
/ 06 января 2010

Используйте запятую для одиночных кортежей.

x = ((5, 5),)
6 голосов
/ 06 января 2010
x=((5,5),)

( x ) - это выражение ( x ,) - это одиночный кортеж.

3 голосов
/ 06 января 2010

Это старая и приводящая в бешенство причуда синтаксиса Python. Вы должны добавить запятую, чтобы Python увидел кортеж:

x = ((5,5),)
2 голосов
/ 06 января 2010

Просто добавьте запятую:

x=((5,5),)
2 голосов
/ 06 января 2010

Вам необходимо добавить запятую после первого кортежа. ((5,5),) должно работать.

...