将多个变量添加到字典中

-1 投票
1 回答
30 浏览
提问于 2025-04-13 21:07

我正在从多个文件夹加载文件,并把这些文件的路径收集到一个字典里。

directory_list = ["A", "B"]

for i in directory_list:
    path_1 = "U:/me/documents/{}/file1".format(i)
    path_2 = "U:/me/documents/{}/file2".format(i)

我想把这些路径放到一个字典里。

我可以这样做:

directory_list = ["A", "B"]
dictionary = {"A": {}, "B": {}}
for i in directory_list:
    path_1 = "U:/me/documents/{}/file1".format(i)
    path_2 = "U:/me/documents/{}/file2".format(i)
    
    dictionary[i]["path_1"] = path_1
    dictionary[i]["path_2"] = path_2

但是我在想,是否有比一个一个添加路径更有效的方法(我总共有超过5个路径)。

这是我想要的输出:

{'A': {'path_1': 'U:/me/documents/A/file1',
  'path_2': 'U:/me/documents/A/file2'},
 'B': {'path_1': 'U:/me/documents/B/file1',
  'path_2': 'U:/me/documents/B/file2'}}

有没有更有效的方法来做到这一点呢?

1 个回答

1

使用字典推导式:

directory_list = ['A', 'B']
file_count = 2
file_numbers = range(1, file_count+1)

file_paths = {d:{f'path_{i}':f'U:/me/documents/{d}/file{i}' for i in file_numbers}
              for d in directory_list}

结果:

{'A': {'path_1': 'U:/me/documents/A/file1',
  'path_2': 'U:/me/documents/A/file2'},
 'B': {'path_1': 'U:/me/documents/B/file1',
  'path_2': 'U:/me/documents/B/file2'}}

撰写回答