【问题标题】:Iterating over keys in Python dictionary遍历 Python 字典中的键
【发布时间】:2021-11-23 08:49:42
【问题描述】:

我有一个字典,里面有五个键,每个键对应三个值:

mySubList1 = [[1, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6], [2, 8, 4, 6, 7, 8, 9, 10, 11, 12, 12, 13]]
mySubList2 = [[0, -1, 3, 4, 4, 6, -2, 3, 1, 0, -20, -2], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15]]
mySubList3 = [[2, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1], [-1, -3, 44, 22, 4, 7, 7, 8, 9, 10, 11, 20]]

my_dictionary = {
            "Dimensions: ": [],
            "Shape: ": [],
            "Mean: ": [],
            "Median: ": [],
            "Standard Deviation: ": [],
        }

for i in mySubList1, mySubList2, mySubList3:
    print(i)
    my_dictionary['Dimensions: '].append(np.ndim(i))
    my_dictionary['Shape: '].append(np.shape(i))
    my_dictionary['Mean: '].append(np.mean(i))
    my_dictionary['Median: '].append(np.median(i))
    my_dictionary['Standard Deviation: '].append(np.std(i))

我要做的是迭代每个键值对,格式为: 设置 1 键 1:值 1 键 2:值 1 键 3:值 1 键 4:值 1 关键5:价值1

设置 2 键 1:值 2 键 2:值 2 键 3:值 2 键 4:值 2 关键5:价值2

等等。

到目前为止我所拥有的是:

for key, value in my_dictionary.items():
    print(key, value)

这给了我不想要的格式输出:

键1:值1、值2、值3

任何指针?

【问题讨论】:

  • "每个键对应五个键和三个值" 不,键总是与一个值相关联
  • 由于您希望数据以按子列表分组的属性列表的形式出现,您是否考虑过将数据结构切换为字典列表而不是列表字典?
  • @Malcolm 我的意思是,这真的取决于最终的用例。一般来说,我会说,字典列表很少是正确的方法。通常,您会通过反序列化一些 JSON 或 Yaml 来得到它。但是如果你要这样做,你真的应该定义自己的记录类型并使用 that 而不是 dict。
  • 当您不需要对数据使用方法时,为您的记录创建一个新类并没有真正的优势。一个简单的 dict 正是你想要的。当您使用 csv.DictReader 时,您会得到这种类型的结构。我几乎不会说 csv.DictReader 这样做不“正确”。当然,这取决于你想对数据做什么,但听起来这就是@LG1 的要求。

标签: python dictionary iteration


【解决方案1】:

如果您想按子列表组织数据,请将您的数据结构从列表字典转换为字典列表

my_list = []
for i in mySubList1, mySubList2, mySubList3:
    my_list.append({
        'Dimension': np.ndim(i),
        'Shape': np.shape(i),
        'Mean': np.mean(i),
        'Median': np.median(i),
        'Standard Deviation': np.std(i)
    })

现在只需 print(my_list) 几乎可以满足您的需求。

【讨论】:

    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多