1. ホーム
  2. python

[解決済み] forループを使った辞書への書き込み(python) [重複] [重複

2023-07-02 18:44:08

質問

私はforループを使用して辞書を作成しようとしています。以下は私のコードです。

dicts = {}
keys = range(4)
values = ["Hi", "I", "am", "John"]
for i in keys:
    for x in values:
        dicts[i] = x
print(dicts)

これは出力されます。

{0: 'John', 1: 'John', 2: 'John', 3: 'John'}

どうして?

出力させるつもりだったんです。

{0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}

なぜそのように出力されないのか、どうすれば正しく出力されるようになるのか。

どうすれば解決するのでしょうか?

dicts = {}
keys = range(4)
values = ["Hi", "I", "am", "John"]
for i in keys:
        dicts[i] = values[i]
print(dicts)

あるいは

In [7]: dict(list(enumerate(values)))
Out[7]: {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}