如何使用用户输入引用python 3中的词典

2024-06-16 11:37:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python编程的初学者。我想知道如何使用用户输入来引用“accountnumber”键,然后为该键打印正确的字典

#Dictionary entry for John
print("\n")
key123 = {
    "Account number": "123",
    "First Name": "John",
    "Last Name": "Hutch",
    "Savings Amount": 1964,
    "Checkings Amount": 6437
}

#Dictionary entry for Suzie

key456 = {
    "Account number": "456",
    "First Name": "Suzie",
    "Last Name": "Gonzalez",
    "Savings Amount": 2001,
    "Checkings Amount": 1256
}

#Dictionary entry for Zeke

key789 = {
    "Account number": "789",
    "First Name": "Zeke",
    "Last Name": "Pena",
    "Savings Amount": 1200,
    "Checkings Amount": 2313
}

Tags: namenumberfordictionary编程accountjohnamount
3条回答

我能得到正确的答案。我可以使用以下代码:

user_input = input("What is your account number?")
user_details = [
{
    "Account number": "123",
    "First Name": "John",
    "Last Name": "Hutch",
    "Savings Amount": 1964,
    "Checkings Amount": 6437
},
{
    "Account number": "456",
    "First Name": "Suzie",
    "Last Name": "Gonzalez",
    "Savings Amount": 2001,
    "Checkings Amount": 1256
},
{
    "Account number": "789",
    "First Name": "Zeke",
    "Last Name": "Pena",
    "Savings Amount": 1200,
    "Checkings Amount": 2313
}]

res = list(filter(lambda x: x["Account number"] == user_input, user_details))

针对用户的每个条目似乎都是一本词典。因此,您可以创建一个字典列表,并尝试使用python中的filter函数进行过滤。(由于要筛选的键在列表中的所有词典中都是相同的,因此一个简单的筛选函数可以为您提供所需的结果)

让我们考虑基于<强>会计号=“456”< /强>

的筛选。
user_input = "456"

user_details = [
{
    "Account number": "456",
    "First Name": "Suzie",
    "Last Name": "Gonzalez",
    "Savings Amount": 2001,
    "Checkings Amount": 1256
},
{
    "Account number": "789",
    "First Name": "Zeke",
    "Last Name": "Pena",
    "Savings Amount": 1200,
    "Checkings Amount": 2313
}]

res = list(filter(lambda x: x["Account number"] == user_input, user_details))

print(res)

[{'Account number': '456', 'First Name': 'Suzie', 'Last Name': 'Gonzalez', 'Savings Amount': 2001, 'Checkings Amount': 1256}]

如果您想进一步缩短结果或只想从字典中获取几个字段,您可以使用以下映射功能:-

mapOutput = list(map(lambda x: [x["First Name"], x["Last Name"]], res))

print(mapOutput)

[['Suzie', 'Gonzalez']]

希望你能找到解决办法。如果您需要进一步的澄清,请在评论部分联系我们,我们很乐意为您提供帮助

您可以创建listdict

data = [
{
"Account number": "456",
    "First Name": "Zeke",
    "Last Name": "Pena",
    "Savings Amount": 1200,
    "Checkings Amount": 2313
},
"Account number": "456",
    "First Name": "Suzie",
    "Last Name": "Gonzalez",
    "Savings Amount": 2001,
    "Checkings Amount": 1256
}
]

将所有数据添加到列表中。然后使用filter在其中搜索

filter(lambda x: x["Account number"] == key_input, data)

相关问题 更多 >