3

print 関数を一度だけ使用して、次の出力を作成したい:

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]

私が間違っていることを教えてください。print関数内で配列の要素を呼び出すにはどうすればよいですか?

4

4 に答える 4

3

リストのインデックスを 内に移動する必要があります{}。そうしない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')
于 2018-10-13T14:22:40.173 に答える
1

あなたが欲しいのは:

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                                     
于 2018-10-13T14:22:57.830 に答える
0

配列変数も取得したい:print(f"{i} - {array[i-1]}")

于 2018-10-13T14:20:34.317 に答える