當前位置:首頁 » 編程語言 » python字典的嵌套

python字典的嵌套

發布時間: 2022-09-14 08:56:19

A. python 實現字典嵌套字典

from collections import defaultdict

interface_all = defaultdict(dict)
for port in porttype:
interface_all[port]['status'] = 'up'

B. python字典能否嵌套如何寫

可以的,你這個就是嵌套了,a_dict是一個字典,裡面的"AAA"也是一個字典,AAA的key與a_dict的key不存在沖突

C. 關於Python字典和列表嵌套用法

字典是可變的
for循環中的臨時變數 如同指針,指向列表中的某元素
對臨時變數的改變,本質是改變的列表中的元素

D. python的嵌套字典問題

列印一下id內存地址

第一次循環賦值 new_alien 就是已經鎖定了id內存地址,下面2次循環都是對內存地址上的賦值

E. python3 如何解析多層嵌套字典,具體內容打開看

# 見 代碼 ,代碼粘貼上不帶格式,按照圖片用tab鍵調整一下,圖片是核心部分

simple_dict={

'Large_dict':{'middle_dict1':{'small_dict1':1,

'small_dict2':2},

'middle_dict2':{'small_dict3':3,

'small_dict4':4,

'small_dict5':{'small_dict10':1,

'small_dict22':3},

},

}

}

#需求分析:從嵌套字典中,找到值為3的路徑關系

#簡化模型:從value為3的值遞歸向上層的key,遞歸過程保存當前已經遞歸的路徑和當前層

#1.找到字典一共有多少層:

count=0

path=''#設置路徑的全局變數

result=[]#記錄結論

defget_count(dict_test):

globalcount#聲明每次遞歸均是改變全局變數

globalpath#拼接檔期啊你的路徑

globalresult#記錄結果

foriindict_test:

iftype(dict_test[i]).__name__=='dict':

#如果是字典,則繼續向下展開,即執行遞歸:

ifcount==0:#增加判斷消除第一個<-出現,邏輯問題

path=path+i

else:

path=path+'<-'+i


count+=1#記錄層數

get_count(dict_test[i])

else:

try:

#如果不是字典則是鍵值對,查詢value值是不是3,當前i包含兩個內容,一個是key,一個是value

ifdict_test[i]==3:

#找到了value=3的值

result.append(f"路徑是:%s,在第%d層"%(path+'<-'+i,count))

exceptExceptionasresult:#雖然字典限定了寫法,為了增加健壯性此位置使用try指令,避免類型錯誤

print(result)

continue


if__name__=='__main__':

get_count(simple_dict)#執行遞歸函數

[print(str(i+1)+':'+j)fori,jinenumerate(result)]#列印結果


'''

結果:

1:路徑是:Large_dict<-middle_dict1<-middle_dict2<-small_dict3,在第3層

2:路徑是:Large_dict<-middle_dict1<-middle_dict2<-small_dict5<-small_dict22,在第4層

'''

F. python 中嵌套字典,怎麼修改最內層的value值變為自定的類,並且可以調用類的各個參數

字典的最內層通過下標賦值的方法來實現,不能用字典自帶的get()函數來賦值,調用時類的屬性和類可直接用print來使用,但調用類中的函數時,要注意用print時的返回是None。

G. python 列表嵌套字典再嵌套字典怎麼排序

sorted(my_list,key=lambda x:x['location']['left'])

H. python中如何取嵌套字典中的多個值

city_menu={"BJ":{"dongcheng":{"size":41.84,"people":91.9,"code":100010},
"xicheng":{"size":50.70,"people":124.3,"code":100032},
"chaoyang":{"size":470.8,"people":308.3,"code":100020}},
"GZ":{"yuexiu":{"size":33.80,"people":115,"code":510030},
"liwan":{"size":59.10,"Mpeople":89,"code":510145},
"tianhe":{"size":96.33,"people":143,"code":510630},
"haizhu":{"size":90.40,"people":155,"code":510220}},
"SZ":{"futian":{"size":78.66,"people":135.71,"code":518000},
"nanshan":{"size":185.49,"people":113.59,"code":518000},
"luohu":{"size":78.76,"people":95.37,"code":518001}}}

d={}
for k0,v0 in city_menu.items():
for k1,v1 in v0.items():
d[v1['code']]=k0+"-"+k1

def city():
qu=input('請輸入郵政編碼:')
if int(qu) in d:
return print('郵政編碼為:%s 的城市是%s。' %(qu,d[int(qu)]))
else:
print('輸入錯誤!')

I. Python字典嵌套字典排序,該怎麼處理

感覺這個需求有些許問題,因為通常對比排序的都是同一類型的數據,譬如aaa代表是年齡,bbb代表的是工資,等等... 所以不會拿自己的年齡和工資作一次排序。

# 要做的話,可以手動給它並成一個新列『sort_key』。 obj就是你最外層的a,免得同名混淆

for i in obj:

obj[i]['sort_key'] = obj[i].values()[0]

# 目的是構造出這樣的結構:

# ('c', {'sort_key': 1, 'ccc': 1}), ('d', {'sort_key': 2, 'ddd': 2}), .....)

print(sorted(obj.items(), key = lambda x:x[1]['sort_key']))

J. Python字典推導法,怎麼輸出嵌套字典

實際上各種推導式的本質就是for循環, 它們之間的區別只是取值方式的不同和表達式的不同
首先, 字典的取值方式有兩種: 按key取值, 使用get方法取值
其次, 字典推導式的表達式部分需要寫成 key:value 的形式
如果要使用字典推導式推導一個嵌套字典
例如:
infos = {"張三":{ "age":18, "salary":5000},
"李四":{"age":19, "salary":8000},
"王五":{ "age":20, "salary":6000}}
要從infos這個嵌套的字典中推導出一個形如{"張三":5000, "李四":8000, "王五":6000}的字典
首先可以考慮最內層的推導式:
names = [name for name in infos]
這樣就得到了一個姓名的列表: ["張三", "李四", "王五"]
再迭代這個列表, 生成字典的每一項, 於是字典生成式應該像下面這樣:
salary_dict = {name:薪資 for name in names}
在這里, 因為name正好是infos這個字典的key, 所以可以使用name從字典infos中取出對應的薪資, 於是有下面的形式:
salary_dict = {name:infos[name]["salary"] for name in names}
這里就用到的字典的用key取值的方式, 當然, 也可以用get方法取值, 例如下面的形式:
salary_dict = {name:infos.get(name).get("salary") for name in names}
這兩種方式都是可以的, 根據個人喜好選擇就好
為了顯得逼格更高, 可以把names的列表推導式和salary_dict的字典推導式結合起來, 於是就得到下面的形式:
salary_dict = {name:infos[name]["salary"] for name in (name for name in infos)}
到這里, 你會發現表達式里有好多name, 顯得非常重復, 實際上這里並不需要列表推導式, 直接從字典里迭代出來的key就是name了, 所以最終的形式如下:
salary_dict = {name:infos[name]["salary"] for name in infos}
這里為了得到一個比較簡單的結果而繞了一個大圈子, 是為了說明更加通用方法, 對於這個例子, 很容易就能得出結果的哈

熱點內容
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:513
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:348
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:212
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:929
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:829
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840
vb6遍歷文件夾 發布:2025-01-12 05:58:13 瀏覽:366
c在C語言中代表什麼 發布:2025-01-12 05:52:59 瀏覽:48