почему мой формат python выводит одну и ту же переменную вместо обеих переменных - PullRequest
0 голосов
/ 23 марта 2020

поэтому у меня есть список, содержащий кортеж

stat_list = [('name', 11212)]
print('{0:>16}   {0:17}'.format(stat_list[0][0], stat_list[0][1]))

Моя проблема в том, что он печатает только «имя» для обоих форматов, а не «имя» и «11212»

Почему ? и как я мог заставить это печатать оба? Спасибо!

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Первое число в группе скобок указывает, на какой индекс в параметрах формата следует ссылаться. Либо удалите числа, либо измените их так, чтобы они указывали на правильный параметр. Пример ниже, с альтернативами.

# Reference numbers before colon
print("{0:>16}   {1:17}".format(stat_list[0][0], stat_list[0][1]))
# No reference goes in order of entry
print("{:>16}   {:17}".format(stat_list[0][0], stat_list[0][1]))
# Unpack the tuple instead
print("{:>16}   {:17}".format(*stat_list[0]))
# f-strings are a bit more clear (Python 3.6+)
print(f"{stat_list[0][0]:>16}   {stat_list[0][1]:17}")
0 голосов
/ 23 марта 2020

Это ваш обновленный код. Это будет отлично работать.

stat_list = [('name', 11212)]
print('{0:>16} {1:17}'.format(stat_list[0][0], stat_list[0][1]))

Пожалуйста, go через https://www.geeksforgeeks.org/python-format-function/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...