Python:根据value的出现对字典列表中特定的字典对进行排序

2024-10-01 04:56:31 发布

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

示例:

[{type:"fjsjo"}, {type:"cccc"}, {type:"xxxx"}, {type:"oooo"}]

结果

[{type:"fjsjo"}, {type:"xxxx"}, {type:"cccc"}, {type:"oooo"}]

我总是需要把“xxxx”字典放在“cccc”之前。如何转换字典,以便当它检测到出现的字典包含值“cccc”和“xxxx”紧挨在一起,或者这两个值之间可能有另一个字典时,可以转换为“xxxx”总是在“cccc”之前?你知道吗

示例:

[{type:"fjsjo"}, {type:"cccc"}, {type:"oooo"} , {type:"xxxx"}, {type:"oooo"}]

结果

[{type:"fjsjo"}, {type:"xxxx"}, {type:"oooo"} , {type:"cccc"}, {type:"oooo"}]

另外,如果有两个或多个相同类型的词典集,那么它应该总是只对最靠近左侧的词典进行排序。你知道吗

所以呢

示例:

[{type:"cccc"}, {type:"xxxx"} , {type:"cccc"}, {type:"xxxx"}]

结果

[{type:"xxxx"}, {type:"cccc"} , {type:"xxxx"}, {type:"cccc"}]

每当“cccc”出现在“xxxx”之前时,这两个词典必须互换位置。如果他们已经换了位置,就不能再换了。所以中间的两个字典不会互换。你知道吗

示例:

[{type:"cccc"}, {type:"xxxx"} , {type:"cccc"}]

结果

[{type:"xxxx"}, {type:"cccc"} , {type:"cccc"}]

示例:

[{type:"cccc"}, {type:"oooo"} , {type:"xxxx"}, {type:"cccc"},{type:"xxxx"}]

结果

[{type:"xxxx"}, {type:"oooo"} , {type:"cccc"}, {type:"xxxx"},{type:"cccc"},{type:"cccc"}]

Tags: 示例类型字典排序type词典ccccxxxx
1条回答
网友
1楼 · 发布于 2024-10-01 04:56:31

我认为你的类型是引用和尝试这个

a=[{'type':"cccc"}, {'type':"oooo"} , {'type':"xxxx"}, {'type':"cccc"},{'type':"xxxx"}]

xxlist=[]

for index,dix in enumerate(a):
    if dix['type']=='xxxx':
        xxlist.append(a.pop(index))
new=[]
for i in a:
    if i['type']=='cccc':
        new.append(xxlist.pop(0))
        new.append(i)
    else:
        new.append(i)

if len(xxlist)>0:
    for i in xxlist:
       new.append(i)
print new

输出

[{'type': 'xxxx'}, {'type': 'cccc'}, {'type': 'oooo'}, {'type': 'xxxx'}, {'type': 'cccc'}]

相关问题 更多 >