Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > создание кортежа(тупла) из n списков


Автор: alex_smirnov 15.12.2007, 01:36
Уважаемые,

подскажите, как создать элемент кортеж(тупл) из n списков.
Если бы надо было список списков делать, то все понятно, append никто не отменял)))

можно конечно так:

t = ([], [], [], ..., [])

а если их больше десяти, то как быть? smile

вот такой вот вопрос знатокам!

Спасибо!)

Автор: Daevaorn 15.12.2007, 01:39
Цитата(alex_smirnov @  15.12.2007,  02:36 Найти цитируемый пост)
t = ([], [], [], ..., [])

Чем этот способ не устраивает?
Лучше более подробно расскажи про задачу.

Автор: alex_smirnov 15.12.2007, 02:08
Да в задаче можно было бы и вложенными списками обойтись...

Просто интересно, существуют ли способы решить поставленную мной задачу, не прибегая к линейному набору..., так сказать обманным маневром smile

Автор: pythonwin 15.12.2007, 13:04
Цитата(alex_smirnov @  15.12.2007,  04:36 Найти цитируемый пост)
подскажите, как создать элемент кортеж(тупл) из n списков.

ты их руками ввел?

Автор: alex_smirnov 15.12.2007, 14:09
неа, пока никак не вводил,
вот я и ищу что-то, что позволило бы n штук спокойно запихать)))

а вот мне и подсказали в извращенческом порыве ;)

Код

a=tuple([] for i in range(15))


спасибо всем за участие!
тема закрыта.

Автор: Daevaorn 15.12.2007, 16:16
Цитата(alex_smirnov @  15.12.2007,  15:09 Найти цитируемый пост)
а вот мне и подсказали в извращенческом порыве ;)

видимо телепаты ещё не перевелись.

Автор: alex_smirnov 16.12.2007, 14:01
почему телепаты?
юмор не понял.

Автор: pythonwin 17.12.2007, 07:55
Цитата(alex_smirnov @  16.12.2007,  17:01 Найти цитируемый пост)
почему телепаты?
юмор не понял. 

smile потому что никто не понял в чём тебе нужно было помочь - короче - формулируй вопросы по другому, а то простые программисты тебя не поняли.

Добавлено через 2 минуты и 29 секунд
Цитата(alex_smirnov @  15.12.2007,  17:09 Найти цитируемый пост)
a=tuple([] for i in range(15))

а вот аналог этого кода
Код

b = ([],)*15

Автор: alex_smirnov 17.12.2007, 13:00
вопрос был конкретный:

"как создать элемент кортеж(тупл) из n списков"..."короткая запись?"

в этом помочь и надо было.

ЗЫ: а я думал, что хоть кто-то меня поддержит, а вы формулируй, формулируй...

ЗЗЫ: pythonwin спасибо за ещё одну короткую запись!

Автор: pythonwin 17.12.2007, 14:30
считаю что вопрос должен был звучать так:
Цитата

как можно создать кортеж из n пустых списков, который должен выглядеть так:
t = ([], [], [], ..., []).

число n чаще всего больше 10

Автор: setq 17.12.2007, 20:57
Цитата(pythonwin @  17.12.2007,  07:55 Найти цитируемый пост)
а вот аналог этого кода

b = ([],)*15




Боюсь, чревато неожиданным поведением, когда элемент, добавленный в один из списков, появится во всех остальных списках тоже.

Автор: pythonwin 18.12.2007, 11:47
Цитата(setq @  17.12.2007,  23:57 Найти цитируемый пост)


Боюсь, чревато неожиданным поведением, когда элемент, добавленный в один из списков, появится во всех остальных списках тоже.

согласен - так и есть...
Код

>>> b=([],)*15
>>> b
([], [], [], [], [], [], [], [], [], [], [], [], [], [], [])
>>> b[0].append(1)
>>> b
([1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1], [1])
>>>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)