繁体   English   中英

如何使用 python 检查和替换字典键中的列表元素

[英]how to check and replace list element in dictionary key using python

我正在尝试检查字典键中是否存在列表元素,然后用字典值替换列表元素。

输入数据

list1 : ['Customer_Number', 'First_Name', 'Last_Name']
dict1 : {'Customer_Number': 'A', 'First_Name': 'B', 'Middle_Name': 'C', 'Last_Name': 'D', 'Org_Names': 'E'}

预计 Output

list: ['A', 'B', 'D']

代码尝试

for ele in list1:
    if ele in dict1.keys():
        list1.append(dict1.values())

    

获取错误

keys: dict_keys(['Customer_Number', 'First_Name', 'Middle_Name', 'Last_Name', 'Org_Names'])
TypeError: unhashable type: 'dict_keys'

您会收到错误,因为您试图将列表用作字典的键,这是不可能的,因为只有像stringstuplesintegers这样的不可变对象可以用作字典中的键。 要解决此错误,请确保在字典中创建项目时仅使用可散列对象。

现在朝着你想要实现的方向前进

list1 = ['Customer_Number', 'First_Name', 'Last_Name']
dict1 = {'Customer_Number': 'A', 'First_Name': 'B', 'Middle_Name': 'C', 'Last_Name': 'D', 'Org_Names': 'E'}
newList = []
for key, value in dict1.items():
if key in list1:
    newList.append(value)
print(newList)

尝试这个:

list1 = ['Customer_Number', 'First_Name', 'Last_Name']
dict1 = {'Customer_Number': 'A', 'First_Name': 'B', 'Middle_Name': 'C', 'Last_Name': 'D', 'Org_Names': 'E'}

res = [v for k,v in dict1.items() if k in list1]

print(res)

尝试:

res = list()
for k, v in dict1.items():
    if k in list1:
        res.append(v)

print(res)

暂无
暂无

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

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