You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何通过索引获取存储目录与文件数的字典对应行数据

实现方法

方法1:转换为行式存储列表(最简单,无需修改原有逻辑)

通过zip函数将原有的按字段分组的结构,转换为按行存储的列表,直接支持索引访问:

# 假设你的原始字典名为dir_dict
dir_dict = {
'path': [
  'folder0',
  'folder1',
  'folder2',
  'folder3'],
 'count': [
    '7',
    '21',
    '34',
    '56']
}

# 转换为元组列表,每个元素对应一行(路径, 文件数)
row_list = list(zip(dir_dict['path'], dir_dict['count']))

# 访问第0行
print(row_list[0]) # 输出: ('folder0', '7')
# 单独取路径或计数
print(row_list[0][0]) # 输出: folder0
print(row_list[0][1]) # 输出: 7

如果需要更清晰的键值访问,可以转换为字典列表:

row_dict_list = [{'path': p, 'count': c} for p, c in zip(dir_dict['path'], dir_dict['count'])]
print(row_dict_list[0]) # 输出: {'path': 'folder0', 'count': '7'}
print(row_dict_list[0]['path']) # 输出: folder0

方法2:自定义可索引字典类(保留原有字典用法,同时支持索引访问)

如果你不想修改原有字典的结构,还需要保留原有的dict['path']这类按键访问的能力,可以重写字典的索引方法:

class IndexableDirDict(dict):
    def __getitem__(self, key):
        # 如果传入的是整数,按行索引返回对应数据
        if isinstance(key, int):
            return {
                'path': self['path'][key],
                'count': self['count'][key]
            }
        # 非整数参数保留原字典的按键访问逻辑
        return super().__getitem__(key)

# 初始化自定义字典
my_dir_dict = IndexableDirDict(dir_dict)

# 支持索引访问
print(my_dir_dict[0]) # 输出: {'path': 'folder0', 'count': '7'}
# 原有按键访问不受影响
print(my_dir_dict['path']) # 输出: ['folder0', 'folder1', 'folder2', 'folder3']

内容的提问来源于stack exchange,提问作者Milad Sikaroudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:54:01