Есть ли еще способы определить кортеж только с одним элементом? - PullRequest
6 голосов
/ 17 февраля 2010

Я знаю, что это один из способов, поставив запятую:

>>> empty = ()
>>> singleton = 'hello',    # <-- note trailing comma
>>> len(empty)
0
>>> len(singleton)
1
>>> singleton
('hello',)

Источник: http://docs.python.org/tutorial/datastructures.html

Есть ли еще способы определить кортеж только с 1 элементом?

Ответы [ 4 ]

10 голосов
/ 17 февраля 2010
>>> tuple(['hello'])
('hello',)

Но у встроенного синтаксиса есть причина.

4 голосов
/ 17 февраля 2010

Даже если вы можете определить кортеж как 'hello', Я думаю, кому-то будет легко пропустить завершающую запятую, если он читает ваш код. Я определенно предпочитаю ('hello',) с точки зрения читабельности.

2 голосов
/ 17 февраля 2010

Еще один

>>> (1, 2)[0:1]
(1,)

Очень запутанный способ, но он является альтернативой ...

2 голосов
/ 17 февраля 2010

singleton = ('hello',)

Я думаю, это более понятно, а @jleedev еще яснее. Но мне нравится метод, который вы использовали лучше всего:

singleton = 'hello',

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...