Печать подстроки в консоли Python [дубликат]

Контейнеры 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 также содержит объяснение этого поведения: Как создать многомерный список?

6
задан Zero Piraeus 24 June 2014 в 18:13
поделиться

2 ответа

Если все, что вам нужно, это цифры, вы можете использовать методы str.maketrans() и str.translate() :

>>> SUB = str.maketrans("0123456789", "₀₁₂₃₄₅₆₇₈₉")
>>> SUP = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")
>>> "H2SO4".translate(SUB)
'H₂SO₄'
13
ответ дан Zero Piraeus 18 August 2018 в 02:43
поделиться
  • 1
    +1. @Sam: Чтобы подчеркнуть, единственный индекс, который может быть выполнен напрямую, требует наличия специальных символов (в Unicode). Таким образом, 2 и 4 в 'H₂SO₄' на самом деле являются разными символами, чем 2 и 4. Тем не менее, это довольно необычный способ реализовать индекс и надстрочный индекс. Как сказал Bakuriu в stackoverflow.com/a/24391972/1346705 , обычным способом является использование чего-то большего, чем средство просмотра, способное отображать символы Unicode. – pepr 24 June 2014 в 22:00
  • 2
  • 3
    – Zero Piraeus 10 September 2018 в 08:19

Вывод, выполняемый на консоли, представляет собой простой текст. Если терминал поддерживает unicode (большинство из них в настоящее время), вы можете использовать индексы unicode . (например, H₂) А именно, индексы находятся в диапазонах:

  • 0x208N для чисел, +, -, =, (, ) (N идет от 0 до F)
  • 0x209N для букв

Например:

In [6]: print(u'H\u2082O\u2082')
H₂O₂

Для более сложного вывода вы должны использовать язык разметки (например, HTML) или язык набора текста (например, LaTeX).

8
ответ дан Bakuriu 18 August 2018 в 02:43
поделиться
  • 1
    Они заканчивают вверх дном – samrobbins 24 June 2014 в 17:43
  • 2
    @Sam? Нет. Подстрочный индекс 2 является лишь небольшим 2, который немного ниже. – Bakuriu 24 June 2014 в 17:46
Другие вопросы по тегам:

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