我有一本字典,里面有如下的字典清单。你知道吗
我想根据名称交换字典列表的所有值。你知道吗
示例:swap_function('Arvind','Jayesh')
应交换其他值,如姓氏、全名和电子邮件。你知道吗
我已经尝试了很多从其他网站的参考,但不能达到我的目标。你知道吗
data = {
"items":[
{
"name":"Arvind",
"surname":"Patel",
"fullname":"Arvind Patel",
"email":"abc@xyx.com"
},
{
"name":"Jayesh",
"surname":"Patel",
"fullname":"Jayesh Patel",
"email":"Patel@gmail.com"
},
{
"name":"Krishna",
"surname":"dave",
"fullname":"Krishna dave",
"email":"Krishna@xyz.com"
},
{
"name":"Aditya",
"surname":"Patel",
"fullname":"Aditya Patel",
"email":"Aditya@abc.com"
}
]
}
我试过下面这样,但之后我就没有主意了。你知道吗
def name_swap(name1, name2):
for key, item in data.items():
first_dict = item[0]
second_dict = item[1]
third_dict = item[2]
forth_dict = item[3]
fifth_dict = item[4]
after name_swap('Arvind', 'Krishna')
output :
data = {
"items":[
{
"name":"Arvind",
"surname":"dave",
"fullname":"Krishna dave",
"email":"Krishna@xyz.com"
},
{
"name":"Jayesh",
"surname":"Patel",
"fullname":"Jayesh Patel",
"email":"Patel@gmail.com"
},
{
"name":"Krishna",
"surname":"Patel",
"fullname":"Arvind Patel",
"email":"abc@xyx.com"
},
{
"name":"Aditya",
"surname":"Patel",
"fullname":"Aditya Patel",
"email":"Aditya@abc.com"
}
]
}
如果我没说错的话:
首先要找到两个dict的索引:
Find the index of a dict within a list, by matching the dict's value
然后切换项目的位置:
How to switch position of two items in a Python list?
请尝试以下代码:
并给出:
现在让我们用下面的函数来概括这个例子:
在您的情况下,您将使用以下函数:
你会得到和上面一样的结果。你知道吗
代码解释
swap_dict_list
函数接收字典列表'dict\u list'、要搜索的2个值('val1'和'val2')和要执行target
搜索的字典键作为输入。你知道吗该函数查找与所搜索的两个值对应的索引,如果它们都存在,则执行交换。如果
block_target
是True
,则不交换目标值。你知道吗使用generator expression可以有效地进行搜索。你知道吗
试试这个:
相关问题 更多 >
编程相关推荐