Ниже решения работало для меня, Просто добавлено
u "String"
blockquote>(представляющее строку как 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)
Мой предпочтительный способ:
something = {'foo': 'bar',
'foo2': 'bar2',
'foo3': 'bar3',
...
'fooN': 'barN'}
Согласно руководству по стилю PEP8 существует два способа форматирования словаря:
mydict = {
'key': 'value',
'key': 'value',
...
}
ИЛИ
mydict = {
'key': 'value',
'key': 'value',
...
}
Если вы хотите соответствовать PEP8 Я бы сказал, что все остальное технически неправильно.
стиль отступления aaronasterling - то, что я предпочитаю. Этот и некоторые другие стили объясняются в , другом вопросе SO . Особенно ответ Леннарта Регебро дал хороший обзор.
Но этот стиль был тем, за кого больше всего голосовали:
my_dictionary = {
1: 'something',
2: 'some other thing',
}
Определите свой словарь любым удобным для вас способом, а затем попробуйте следующее:
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}
Вам нравится вывод?
Ну, первый - запрет, так как ваши строки должны иметь ширину всего 79 символов. Что касается двух других вариантов, я полагаю, что это дело вкуса, но я лично предпочитаю второй вариант.
Я люблю второй путь:
something = {'foo' : 'bar',
'foo2' : 'bar2',
'foo3' : 'bar3',
...
'fooN': 'barN'}
Если вы идете по ганети (что соответствует PEP 8), вы должны выбрать третий вариант.
something = {
'foo1': 'bar1',
'foo2': 'bar2',
'foo3': 'bar3',
...
}
Мне нравится этот esp. потому что вы можете выбрать только элементы, которые вы хотите. И я чувствую, что удаление или добавление элементов с обеих сторон происходит быстрее.
Примечание: Как указано в комментарии, не должно быть пробелов перед «:» (E203) согласно PEP.
Я хочу упомянуть следующую опцию, которая конкретно не упоминается в PEP8, но отмечена в документации по словарю : «Когда ключи представляют собой простые строки, иногда проще определить пары, используя ключевые аргументы: "
my_dict = dict(
foo = 1,
bar = 2,
baz = 3,
...
)
Это не решает вопрос отступа, однако.
Я предпочитаю второй или третий.
Причина:
До прочтения этого поста я бы выбрал третий вариант, который вы дадите. Но теперь я мог бы пойти на тот, который НЕ является стилем Тёрока Габора:
my_dictionary = {1: «что-то», 2: «что-то другое»,}
Но, честно говоря, все, кроме Ваш первый вариант, вероятно, в порядке.
Определенно, НЕ вариант 1, одна из сильных сторон Python - его разборчивость. Вариант 1 серьезно снижает эту разборчивость.
Из 2 и 3 я повторю те же причины, что и Pyfunc для обоих.
Однако в моем собственном коде я предпочитаю вариант 3 просто потому, что первый элемент иногда «теряется» из-за того, что находится в конце строки объявления, а при быстром взгляде на код иногда я просто не вижу его сразу. Я знаю, что это немного глупо, но ум работает таинственным образом ...