Я также рекомендовал бы смотреть copy
модуль:
Это поможет Вам понять базовые проблемы и как использовать ее для выполнения собственной глубокой копии.
my_dictionary = {
1: 'something',
2: 'some other thing',
}
Я бы сказал, что стандарта почти нет.
Я видел два способа отступа:
Indent 1:
my_dictionary = {
'uno': 'something',
'number two': 'some other thing',
}
Indent 2:
my_dictionary = {'uno': 'something',
'number two': 'some other thing',
}
Я видел три, помещенных в крайнюю скобку:
End 1:
my_dictionary = {'uno': 'something',
'number two': 'some other thing',
}
End 2:
my_dictionary = {'uno': 'something',
'number two': 'some other thing',
}
End 3:
my_dictionary = {'uno': 'something',
'number two': 'some other thing',}
И иногда вы оправдываете значения:
my_dictionary = {'uno': 'something',
'number two': 'some other thing',
}
А иногда даже двоеточия:
my_dictionary = {'uno' : 'something',
'number two' : 'some other thing',
}
Что выглядит странно.
И иногда у вас есть конечная запятая, а иногда нет:
my_dictionary = {'uno': 'something',
'number two': 'some other thing'}
А иногда вы вставляете все это в одну строку (если подходит).
my_dictionary = {'uno': 'something', 2: 'some other thing'}
Кажется, у каждого своя комбинация этих стилей. Лично я предпочитаю стиль, который вы используете в своем примере, если нет причин не делать этого. Распространенные причины не делать этого - когда у вас есть словарь как часть утверждения. Примерно так:
amethodthattakesadict({'hey': 'this',
'looks': 'a',
'bit': 'shitty',
})
Я бы порекомендовал вам адаптироваться к стилю парня, написавшего код, который вы редактируете. Если это ваш код: делайте как хотите. : -)
О конечной скобке: я предпочитаю ее так:
my_dictionary = {
'a': 'first value',
'b': 'second',
}
и я скажу вам почему: поскольку отступ в коде Python не имеет закрывающего токена, код имеет такой отступ: первая строка (if, while, def и т. д.) отличается от остальной части предложения, а все остальные строки имеют такой же отступ. Последняя строка предложения имеет отступ вместе со всем остальным. Следующая строка с таким же отступом, как и первая, является первой строкой следующего предложения, а не последней строкой этого.
Поэтому мне нравится делать отступ в структурах данных, используя соглашение, аналогичное соглашению с предложениями кода, даже несмотря на то, что структуры данных имеют явный закрывающий токен и поэтому могут иметь большую гибкость.
Стиль отступа 1 , стиль окончания 3 (после ответа Леннарта):
my_dictionary = {1: 'thing_one',
2: 'thing_two',
...
n: 'thing_n'}
Это может быть самый цельный стиль отступа для заключенных в скобки объектов в коде Python, поскольку он очень похож на форматирование пробелов Python. Переход к отступам в стиле C в коде Python всегда казался мне немного неудобным, и я подозреваю, что он используется в основном потому, что программисты, привыкшие к C-подобным языкам (из-за их повсеместности), возможно, не сталкивались с различными стилями отступов.
Недостатком может быть то, что вставка в начале или в конце немного сложнее, чем в других стилях. Учитывая правильный редактор, который поддерживает написание кода Python, это не должно иметь большого значения.
Попробуйте этот стиль отступа в контексте и сравните его бок о бок с отступом в стиле C, а затем решите, какой из них выглядит более питоническим.
Может быть, это можно было бы назвать отступом в стиле lisp , потому что это способ, которым код lisp был отступ с столетий десятилетий, но это, например, , также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в Lisp-подобных языках) вы часто читаете одну вещь: «Зачем давать им лишние строки? Они так важны?»
В конце концов, это в основном вкус вещь.
Учитывая правильный редактор, который поддерживает написание кода Python, это не должно иметь большого значения.Попробуйте этот стиль отступа в контексте и сравните его бок о бок с отступом в стиле C, а затем решите, какой из них выглядит более питоническим.
Может быть, это можно было бы назвать отступом в стиле lisp , потому что это способ, которым код lisp был отступ с столетий десятилетий, но это, например, , также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»
В конце концов, это в основном вкус вещь.
С учетом подходящего редактора, который поддерживает написание кода Python, это не должно иметь большого значения.Попробуйте этот стиль отступа в контексте и сравните его бок о бок с отступом в стиле C, а затем решите, какой из них выглядит более питоническим.
Может быть, это можно было бы назвать отступом в стиле lisp , потому что это способ, которым код lisp был отступ с столетий десятилетий, но это, например, , также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»
В конце концов, это в основном вкус вещь.
и сравните его рядом с отступом в стиле C, а затем решите, какой из них выглядит более питоническим и связным. Возможно, это можно было бы назвать отступом в стиле Lisp , потому что это способ, которым lisp код имеет отступ с веков десятилетий, но он, например, также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в Lisp-подобных языках) вы часто читаете одну вещь: «Зачем давать им лишние строки? Они так важны?»
В конце концов, это в основном вкус вещь.
и сравните его рядом с отступом в стиле C, затем решите, какой из них выглядит более питоническим и связным. Возможно, это можно было бы назвать отступом в стиле Lisp , потому что это способ, которым lisp Код имеет отступы с веков десятилетий, но, например, он также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»
В конце концов, это в основном вкус вещь.
потому что это способ, которым код lisp имеет отступ сВ конце концов, это в основном вкус вещь.
потому что это способ, которым код lisp имеет отступ сВ конце концов, это в основном вкус вещь.
Я делаю это, если словарь слишком велик для размещения в одной строке:
d = \
{
'a' : 'b',
'c' : 'd'
}