亚洲乱码一卡二卡四卡乱码新区_亚洲乱码中文字幕小综合_亚洲人成电影在线播放_亚洲性色AV一区二区三区_亚洲一区二区三区影院_亚洲中文字幕久久精品无码A_亚洲中文字幕无码专区_伊人热热久久原色播放WWW_在线观看AV永久免费_最新欧洲大片免费在线,欧美日韩成人三级免费看,久久黄色网址,欧美激情内射喷水高潮

首頁
社區(qū)
課程
招聘
字典輸出value值用set去重會(huì)影響順序怎么解決

問題描述

字典輸出value值用set去重會(huì)影響順序怎么解決

相關(guān)代碼

a={"a":'dddd','b':'ccc','c':'sss','d':'fffff','e':'ccc'}
for f in set(a.values()):
print(f)

相關(guān)調(diào)試信息

運(yùn)行結(jié)果如下:
sss
fffff
dddd
ccc
并沒有按照字典鍵的順序來輸出
如果想讓其按順序輸出,,該怎么寫,?

收藏
1條回答
T_N_T 2024-2-18

這個(gè)問題問得好,,這個(gè)涉及到python執(zhí)行去重的底層算法了(版本不同算法不一樣),,老版本的算法他會(huì)先匹配字符串,,并將匹配到的字符串當(dāng)前位置往前的所有元素都拼接在重復(fù)元素后面,,比如:dddd,ccc,sss,fffff,ccc,,就變成了sss,fffff,dddd,ccc,,要解決這個(gè)問題要么改底層代碼,,要么用切片方式,,或者邏輯判斷key值解決問題,新版本已經(jīng)解決這個(gè)問題,不會(huì)存在順序不一致

新版本運(yùn)行效果:
PS C:\Users\84\Desktop> python
Python 3.11.5 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:26:23) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

PS C:\Users\84\Desktop> python .\liyou.py
dddd
ccc
sss
fffff

老版本的解決方式:
使用list2.sort(key=list1.index)
其中l(wèi)ist1是將原字典的值轉(zhuǎn)化為列表

回復(fù)
二進(jìn)制Pwn初級(jí)篇
  參與學(xué)習(xí)     172 人
  提問次數(shù)     1 個(gè)
二進(jìn)制Pwn初級(jí)篇-揭開面紗帶你進(jìn)入計(jì)算機(jī)底層
0
我的提問
0
我的回答
0
學(xué)習(xí)收益