LINUX.ORG.RU

python


0

0

1. Как в python создать список из n елементов, заполненный нулями одной командой - то есть вроде l = range (n), но только заполненный нулями. 2. Как запустить приложение из python'овской программы и заграбить его вывод?

anonymous

Ответ на: комментарий от anonymous

Стоп, [0] * n - не пойдет - это же интерпретатор представит в виде списка ссылок на один и тот же объект.

anonymous
()
Ответ на: комментарий от anonymous

> интерпретатор представит в виде списка ссылок на один и тот же объект.

Да. Но для 0 это пофиг. Для mutable типов (напр. list) либо через map, как выше, либо [ list() for i in xrange(n) ]. Для list можно писать map так: map( list, [[]]*n ).

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от anonymous

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

>>> 0 is 0

True

То есть все нули в программе как бы один и тот же объект :-)))) на самом деле думаю что не так, но эт пофигу, потому что при операциях с теми же числами напр, меняется не объект - меняется именно ссылка на него (переключается на другой объект). напр:

>>> a = 1 ; b = a

>>> a += 1

>>> a

2

>>> b

1

Об этом все время надо помнить, иначе иногда бывают довольно загадочные результаты......

AIv ★★★★★
()
Ответ на: комментарий от anonymous

если ноль, то [0]*n прокатит. если надо инициализировать список, например, словарями, тогда [ {} for i in xrange(n) ] либо map(dict, [()]*n )

anonymous
()
Ответ на: комментарий от anonymous

хотите лямбду -- учите хаскель, или окамль, а лучше сразу лисп

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.