繁体   English   中英

如何将键和值从字典移动到列表?

[英]How to move key and values from dictionary to list?

我试图将“Brian”的键值对添加到“confirmed_users”列表中,但只能获取所述字典的值。 我怎样才能得到两者?

state = True
confirmed_users = []
unconfirmed_users = {
    "Brian": {
        "Age": 21,
        "Size": 12,
        "username": "Danny. B"
    }
}
while state == True:
    task_confirming = input("Enter name to be confirmed: ")
    if task_confirming == "Brian":
        for key, value in unconfirmed_users.items():
            confirmed_users.append(unconfirmed_users["Brian"])
        del unconfirmed_users["Brian"]
        print(confirmed_users[0])
        print(unconfirmed_users)

输入:

Brian

Output:

{'Age': 21, 'Size': 12, 'username': 'Danny. B'}
{} 

几个小技巧:

  • 你用键“Brian”和相应的值创建一个新字典,它是 append。

  • 不需要循环遍历项目

  • 您也可以使用pop删除字典的入口

state = True
confirmed_users = []
unconfirmed_users = {
    "Brian": {
        "Age": 21,
        "Size": 12,
        "username": "Danny. B"
    }
}
while state == True:
    task_confirming = input("Enter name to be confirmed: ")
    if task_confirming == "Brian":
        confirmed_users.append({task_confirming: unconfirmed_users.pop(task_confirming)})
        print(confirmed_users[0])
        print(unconfirmed_users)

取决于你想要的格式。

confirmed_users.append( (key, value) )

将添加一个元组 (string, dict)

("Brian" , {"Age": 21,"Size": 12,"username": "Danny. B"})

要添加字典,请参阅卢卡斯的回答。


关于可伸缩性的注意事项username in confirmed_users其中 confirmed_users 是一个相对较慢的列表。 与查看列表的每个元素相比,由于 hash 查找,使用包含所有信息或一组用户名的字典会快得多


旁注:这将对列表中的所有项目执行一个持续的操作,可能不是你想要的;)

for key, value in unconfirmed_users.items():
            confirmed_users.append(unconfirmed_users["Brian"])

暂无
暂无

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

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