Найти - Пользователи
Полная версия: Вывод каждого элемента списка, кортежа с новой строки
Начало » Python для экспертов » Вывод каждого элемента списка, кортежа с новой строки
1 2
pythboa
Когда пользуешься функциями вроде dir(), locals(), sys.path и информации выводится много, бывает нагляднее, чтобы каждый элемент выводился с новой строки, а не одной сплошной. Как это можно сделать?
shiza
Тока это в голову приходит =)
for x in locals().copy():
print x
pythboa
Получилось, спасибо! А одной строкой не получится?
pythboa
О, и одной строкой получилось:
for x in locals(): print x
Меня просто .copy() смутило, но это чтобы не внести изменений ненароком, а аккуратно можно и без .copy(), да?
shiza
С dir() и sys.path прокатит и без copy.
А вот с locals() - на моем питоне (2.5.1) - он ругается: “RuntimeError: dictionary changed size during iteration”
pythboa
Мне такой ошибки не даёт (винда, интерактив):
sys.version
2.5 (r25:51908, Sep 19 2006, 09:52:17)

dictionary changed size during iteration – от самой команды меняться ему вроде не с чего, может словарь locals() меняет что-то другое, да так быстро, что не успевает пройти цикл print по всем элементам словаря? (просто гадаю)


for x in __builtins__.__dict__: print x
- пример полезости построчного вывода :) иначе завалило бы.

# поподробнее: ключи + значения
for x in __builtins__.__dict__.items(): print x

Вообще можно модуль такой себе представить: вызываешь с именем объекта, он создает текущую копию, идентифицирует его и предлагает доступные опции отображения; для словарей, списков и т.д. они будут разные. Напр., locals(): вам построчно или одной строкой? А по имени отсортировать? Экспортируемые скрыть нафиг? и т.д. Может даже есть уже где-нибудь.
Андрей Светлов
Ребята, вы видели модуль pprint?

from pprint import pprint
pprint(dir(), width=1)

И так далее…
shiza
Андрей Светлов
Ребята, вы видели модуль pprint?
Черт =)
pythboa
Спасибо за pprint, хотя не хватает сортировки по имени. Чтобы содержимое любого списка/кортежа/словаря можно было быстро вывести построчно, по алфавиту и без гемора. Есть ли такой модуль?
shiza
PPRINT:
Changed in version 2.5: Dictionaries are sorted by key before the display is computed; before 2.5, a dictionary was sorted only if its display required more than one line, although that wasn't documented.
А вот списки наверное самому придется сортировать
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