Как прочитать элемент массива внутри функции печати в Python? - PullRequest
0 голосов
/ 13 октября 2018

Я хочу создать следующий вывод , используя функцию печати только один раз:

1 - Add
2 - Subtract
3 - Divide
4 - Multiply

Для этого я использую следующий фрагмент кода:

> for i in range(1, 5):
>     array = ["Add", "Subtract", "Divide", "Multiply"]
>     print(f"{i} - array[{i-1}]")

Но вывод, который я получаю:

1 - array[0]
2 - array[1]
3 - array[2]
4 - array[3]

Не могли бы вы помочь мне, что я делаю не так?Как я могу вызвать элемент массива внутри функции печати?

Ответы [ 4 ]

0 голосов
/ 13 октября 2018

Его можно изменить следующим образом:

print(i, '-', array[i-1])

Если вы используете формат, интерпретируются только в фигурных скобках {}, внешний array обрабатывается как строка, поэтому вы можете сделать этоработать так:

 print(f"{i} - {array[i-1]}")
0 голосов
/ 13 октября 2018

Вам нужно переместить индексирование списка внутри {}, иначе array будет интерпретироваться как строка:

print(f"{i} - {array[i-1]}")

Но вы используете функцию print 4 раза в цикле.Если, как вы говорите, вы хотите использовать print только один раз, вы можете распаковать выражение генератора и использовать аргумент sep:

array = ['Add', 'Subtract', 'Divide', 'Multiply']
print(*(f'{idx} - {val}' for idx, val in enumerate(array, 1)), sep='\n')
0 голосов
/ 13 октября 2018

То, что вы хотите:

print(f"{i} - {array[i-1]}")

Но всегда лучше инициализировать массив перед циклом, иначе вы создаете один и тот же массив каждый раз, когда запускаете цикл.

Итак, что-токак это более эффективно:

array = ["Add", "Subtract", "Divide", "Multiply"]
for i in range(1, 5):
    print(f"{i} - {array[i-1]}")

# 1 - Add
# 2 - Subtract                                                
# 3 - Divide                                                 
# 4 - Multiply                                     
0 голосов
/ 13 октября 2018

Вы также хотите получить переменную массива: print(f"{i} - {array[i-1]}")

...