繁体   English   中英

遍历 Python 字典以获取特定值

[英]Iterate Through Python Dict for Specific Values

我正在使用 Python 3.6 并且我有一个像这样的字典:

{
    "TYPE": {
        "0": "ELECTRIC",
        "1": "ELECTRIC",
        "2": "ELECTRIC",
        "3": "ELECTRIC",
        "4": "TELECOMMUNICATIONS"
    },
    "ID": {
        "0": 13,
        "1": 13,
        "2": 13,
        "3": 13,
        "4": 24
    },
    "1/17/2019": {
        "0": 23,
        "1": 23,
        "2": 23,
        "3": 23,
        "4": 1
    },
    "DATE": {
        "0": "1/17/2019",
        "1": "2/28/2019",
        "2": "3/5/2019",
        "3": "3/28/2019",
        "4": "1/1/2019"
    }
}

如何遍历它并仅访问Utility TypeID的值? 我的目标是将 append 放到一个列表列表中,例如[[ELECTRIC, 13], [ELECTRIC, 13], ...]

到目前为止,我已经能够像这样访问这些值:

for key, value in addresses.items():
    if key == 'UTILITY TYPE':
        for k, v in value.items():
            print(v)
    elif key == 'ID':
        for k, v in value.items():
            print(v)

但我不知道如何 append 将v的值添加到我的列表中。

解决方案

您可以使用pandas库来执行此操作。 另外,考虑尝试pd.DataFrame(d)看看这对你是否有用(因为我不知道你的最终用例)。

import pandas as pd

# d is your dictionary
df = pd.DataFrame(d).T
columns = df.columns
labels = df.index.tolist()
print('labels: {}\n'.format(labels))
[df[x].tolist() for x in columns]

Output

labels: ['TYPE', 'ID', '1/17/2019', 'DATE']

[['ELECTRIC', 13, 23, '1/17/2019'],
 ['ELECTRIC', 13, 23, '2/28/2019'],
 ['ELECTRIC', 13, 23, '3/5/2019'],
 ['ELECTRIC', 13, 23, '3/28/2019'],
 ['TELECOMMUNICATIONS', 24, 1, '1/1/2019']]

虚拟数据

d = {
    "TYPE": {
        "0": "ELECTRIC",
        "1": "ELECTRIC",
        "2": "ELECTRIC",
        "3": "ELECTRIC",
        "4": "TELECOMMUNICATIONS"
    },
    "ID": {
        "0": 13,
        "1": 13,
        "2": 13,
        "3": 13,
        "4": 24
    },
    "1/17/2019": {
        "0": 23,
        "1": 23,
        "2": 23,
        "3": 23,
        "4": 1
    },
    "DATE": {
        "0": "1/17/2019",
        "1": "2/28/2019",
        "2": "3/5/2019",
        "3": "3/28/2019",
        "4": "1/1/2019"
    }
}
output = []
for key in d["TYPE"]:
    temp = [d["TYPE"][key], d["ID"][key]]
    output.append(temp)

或者

x = [[d["TYPE"][key], d["ID"][key]] for key in d["TYPE"]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM