Контейнеры Python содержат ссылки на другие объекты. См. Этот пример:
>>> a = []
>>> b = [a]
>>> b
[[]]
>>> a.append(1)
>>> b
[[1]]
В этом b
есть список, содержащий один элемент, который является ссылкой на список a
. Список a
изменен.
Умножение списка на целое эквивалентно добавлению списка к себе несколько раз (см. операции общей последовательности ). Итак, продолжаем с примера:
>>> c = b + b
>>> c
[[1], [1]]
>>>
>>> a[0] = 2
>>> c
[[2], [2]]
Мы видим, что список c
теперь содержит две ссылки на список a
, который эквивалентен c = b * 2
.
Python FAQ также содержит объяснение этого поведения: Как создать многомерный список?
Если все, что вам нужно, это цифры, вы можете использовать методы str.maketrans()
и str.translate()
:
>>> SUB = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉")
>>> SUP = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
>>> "H2SO4".translate(SUB)
'H₂SO₄'
Вывод, выполняемый на консоли, представляет собой простой текст. Если терминал поддерживает unicode (большинство из них в настоящее время), вы можете использовать индексы unicode . (например, H₂) А именно, индексы находятся в диапазонах:
+
, -
, =
, (
, )
(N
идет от 0
до F
) Например:
In [6]: print(u'H\u2082O\u2082')
H₂O₂
Для более сложного вывода вы должны использовать язык разметки (например, HTML) или язык набора текста (например, LaTeX).
2
является лишь небольшим 2
, который немного ниже.
– Bakuriu
24 June 2014 в 17:46
'H₂SO₄'
на самом деле являются разными символами, чем 2 и 4. Тем не менее, это довольно необычный способ реализовать индекс и надстрочный индекс. Как сказал Bakuriu в stackoverflow.com/a/24391972/1346705 , обычным способом является использование чего-то большего, чем средство просмотра, способное отображать символы Unicode. – pepr 24 June 2014 в 22:00