Python如何将字典转换为可通过索引直接访问的数组
Python 嵌套列表字典转可下标访问列表方案
最简实现(已知键名场景)
不需要做复杂转换,Python字典的单值如果本身是列表类型,直接按键取值后就原生支持[下标]形式的索引访问:
# 原始字典(注:示例里路径字符串前多余的`和重复单引号是书写笔误,已修正为合法Python格式) raw_dict = {'New Beton': ['C:\\User\\New map\\Test1.jpg', 'C:\\User\\New map\\Test2.jpg', 'C:\\User\\New map\\Test3.jpg']} # 直接取值赋值给合法变量即可,Python变量名不能包含空格,所以用下划线替代 new_beton = raw_dict['New Beton'] # 下标访问测试 print(new_beton[0]) # 输出:C:\User\New map\Test1.jpg print(new_beton[2]) # 输出:C:\User\New map\Test3.jpg
注意:Python语法不支持带空格的变量名,所以你期望的
New Beton = [xxx]写法直接运行会报语法错误,如果一定要让变量名和字典键完全一致,只能通过修改全局/局部命名空间动态注入,这种写法极易引发变量冲突,生产环境绝对不要用:# 仅作演示,禁止生产环境使用 for k, v in raw_dict.items(): globals()[k] = v # 注入后无法直接写New Beton[0],只能通过globals()['New Beton'][0]访问,完全没有实用价值
多键批量处理场景
如果字典里有多个键对应嵌套列表,需要统一做索引访问,可以遍历把所有列表合并成一个大列表:
raw_dict = { 'New Beton': ['C:\\User\\New map\\Test1.jpg', 'C:\\User\\New map\\Test2.jpg', 'C:\\User\\New map\\Test3.jpg'], 'Old Beton': ['C:\\User\\Old map\\Test1.jpg', 'C:\\User\\Old map\\Test2.jpg'] } all_paths = [] for path_list in raw_dict.values(): all_paths.extend(path_list) # 合并后即可通过连续下标访问所有元素 print(all_paths[4]) # 输出:C:\User\Old map\Test2.jpg
内容的提问来源于stack exchange,提问作者Marco N.
相关产品推荐
相关产品推荐

