Python & ldquo; лучшая практика форматирования & rdquo; для списков, словаря и т. д.

Ниже решения работало для меня, Просто добавлено

u "String"

(представляющее строку как unicode) перед моей строкой.

result_html = result.to_html(col_space=1, index=False, justify={'right'})

text = u"""
<html>
<body>
<p>
Hello all, <br>
<br>
Here's weekly summary report.  Let me know if you have any questions. <br>
<br>
Data Summary <br>
<br>
<br>
{0}
</p>
<p>Thanks,</p>
<p>Data Team</p>
</body></html>
""".format(result_html)
29
задан Cœur 26 March 2017 в 16:25
поделиться

11 ответов

Мой предпочтительный способ:

something = {'foo': 'bar',
             'foo2': 'bar2',
             'foo3': 'bar3',
             ...
             'fooN': 'barN'}
37
ответ дан aaronasterling 26 March 2017 в 16:25
поделиться

Согласно руководству по стилю PEP8 существует два способа форматирования словаря:

mydict = {
    'key': 'value',
    'key': 'value',
    ...
    }

ИЛИ

mydict = {
    'key': 'value',
    'key': 'value',
    ...
}

Если вы хотите соответствовать PEP8 Я бы сказал, что все остальное технически неправильно.

16
ответ дан frodopwns 26 March 2017 в 16:25
поделиться

стиль отступления aaronasterling - то, что я предпочитаю. Этот и некоторые другие стили объясняются в , другом вопросе SO . Особенно ответ Леннарта Регебро дал хороший обзор.

Но этот стиль был тем, за кого больше всего голосовали:

my_dictionary = {
    1: 'something',
    2: 'some other thing',
}
26
ответ дан Community 26 March 2017 в 16:25
поделиться

Определите свой словарь любым удобным для вас способом, а затем попробуйте следующее:

from pprint import pprint

pprint(yourDict)

# for a short dictionary it returns:

{'foo': 'bar', 'foo2': 'bar2', 'foo3': 'bar3'}

# for a longer/nested:

{'a00': {'b00': 0,
         'b01': 1,
         'b02': 2,
         'b03': 3,
         'b04': 4,
         'b05': 5,
         'b06': 6,
         'b07': 7,
         'b08': 8,
         'b09': 9},
 'a01': 1,
 'a02': 2,
 'a03': 3,
 'a04': 4,
 'a05': 5,
 'a06': 6,
 'a07': 7,
 'a08': 8,
 'a09': 9,
 'a10': 10}

Вам нравится вывод?

5
ответ дан eumiro 26 March 2017 в 16:25
поделиться

Ну, первый - запрет, так как ваши строки должны иметь ширину всего 79 символов. Что касается двух других вариантов, я полагаю, что это дело вкуса, но я лично предпочитаю второй вариант.

1
ответ дан Klaus Byskov Pedersen 26 March 2017 в 16:25
поделиться

Я люблю второй путь:

something = {'foo' : 'bar',
         'foo2' : 'bar2',
         'foo3' : 'bar3',
         ...
         'fooN': 'barN'}
0
ответ дан kasx93 26 March 2017 в 16:25
поделиться

Если вы идете по ганети (что соответствует PEP 8), вы должны выбрать третий вариант.

something = {
             'foo1': 'bar1',
             'foo2': 'bar2',
             'foo3': 'bar3',
             ...
             }

Мне нравится этот esp. потому что вы можете выбрать только элементы, которые вы хотите. И я чувствую, что удаление или добавление элементов с обеих сторон происходит быстрее.

Примечание: Как указано в комментарии, не должно быть пробелов перед «:» (E203) согласно PEP.

2
ответ дан Jungle Hunter 26 March 2017 в 16:25
поделиться

Я хочу упомянуть следующую опцию, которая конкретно не упоминается в PEP8, но отмечена в документации по словарю : «Когда ключи представляют собой простые строки, иногда проще определить пары, используя ключевые аргументы: "

my_dict = dict(
    foo = 1,
    bar = 2,
    baz = 3,
    ...
)

Это не решает вопрос отступа, однако.

0
ответ дан Thomas Ahle 26 March 2017 в 16:25
поделиться

Я предпочитаю второй или третий.

Причина:

  1. Каждый элемент находится на отдельной строке
  2. Достижение конца строки для добавления нового элемента является болью в текстовом редакторе
  3. Добавить новый элемент легко
  4. С третьим вариантом иногда вы можете проверить количество элементов, выбрав эти строки. Большинство редакторов сообщит вам количество выбранных строк.
1
ответ дан Peter Mortensen 26 March 2017 в 16:25
поделиться

До прочтения этого поста я бы выбрал третий вариант, который вы дадите. Но теперь я мог бы пойти на тот, который НЕ является стилем Тёрока Габора:

my_dictionary = {1: «что-то», 2: «что-то другое»,}

Но, честно говоря, все, кроме Ваш первый вариант, вероятно, в порядке.

0
ответ дан jaydel 26 March 2017 в 16:25
поделиться

Определенно, НЕ вариант 1, одна из сильных сторон Python - его разборчивость. Вариант 1 серьезно снижает эту разборчивость.

Из 2 и 3 я повторю те же причины, что и Pyfunc для обоих.

Однако в моем собственном коде я предпочитаю вариант 3 просто потому, что первый элемент иногда «теряется» из-за того, что находится в конце строки объявления, а при быстром взгляде на код иногда я просто не вижу его сразу. Я знаю, что это немного глупо, но ум работает таинственным образом ...

1
ответ дан Peter Mortensen 26 March 2017 в 16:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: