A. python3里關於字典的問題01

ifnameinzidian:
print(zidian[name])
else:
print('notfound')

B. python3 怎麼對字典編碼

字典的基本操作:
2.1、查詢
dic['key']
dic['name']
直接在字典裡面找KEY 取到value
列表的查詢:
print(dic["namee"])
沒有的話會直接報錯
但是字典get不會報錯
print(dic.get('naness'))
輸出none

2.2、增加
字典中添加是無序的添加
dic['gender']='female'
列表是有序的

2.3、改
dic['name'] = 'stone'
改的是value

2.4、刪除
del 萬能的
del dic['name']
字典裡面怎麼定義的key 調用的時候就是那麼寫

2.5、復制: 淺
dic1 = dic.()
print(dic1)

2.6、深入
import
dic3 = .deep(dic)
.是淺

2.7、快速生成字典fromkeys
dic= {'name':'stone','age':18}
data = dic.fromkeys([1,2,3])
print(date)
輸出:
{1: None, 2: None, 3: None}
生成的字典跟聲明的字典dic沒有關系

2.8、items
print(dic.items())
for i in dic.items():
print(i)

2.9、key value形式
keys將字典中所有的key取出
將所有的keys以列表的形式顯示出來
for i in dic.keys():
print('keys is %s,value is %s' %(i,dic[i]))
以列表和元組的形式顯示出來

2.10、刪除pop()
dic.pop(keys)
注意是只能是填寫keys
pop(keys)必須存在才能刪除

2.11、隨機刪除popitem()
隨機刪除key value
這個函數不需要函數隨機刪除

2.12、setdefault
dic.setdefault('gender',[]).append('mail') #dic['gender']=[]
或者是
dic['gender'].appemd('female')

2.13、更新update
方法一:
dic1={'gender':'male','name':'lhf'}
dic.update(dic1)
print(dic)
方法二:
可以根據key進行更新
dic.update(name='stone',gender='male')
print(dic)

2.14、values取所有的值
for i in dic.values(dic1)
print(i)

3、字典key的定義規則:
3.1、可變的原理:
通過id()進行內存調用查看是否是一個內存空間
字元串和數字是不可變的
列表:是可變的類型 是指列表裡麵包含的元素可變
3.2、key的定義規則
必須是不可變的,不可變的類型:數字,字元串,元組
通過內置方法hash 判斷一個數據類型是否可變
hash('sdfas')
-41789881
hash['s'] #hash 列表
Traceback (most recent call last):
File "
字典當中的key是唯一的:不能是重復的
判斷一個字典里有沒有這個值
菜單思路:
首先一個死循環

C. python中的list的in查找和dict中的in查找效率一樣嗎

效率是不一抄樣的,尤其是數據量襲大時很明顯.
這種效率的差異是由於二者的存儲結構不同.
list查找時,需要遍歷,這與其線性的存儲結構有關,因此數據量大時,就顯得慢了.且處於list中越靠後,查詢越慢;不在list中,更需遍歷所有元素,速度最慢.
而dict默認採用hash_map存儲,即使數據量很大,查找也非常快速.

D. python3列表根字典問題!

12345678910mobile=[['apple','ios','100','10'],['pear','android','200','20'],['apple','ios','500','50'],['pear','android','600','60']]mobiledict={}for elem in mobile: key=(elem[0],elem[1]) if key in mobiledict: mobiledict[key][0]+=int(elem[2]) mobiledict[key][1]+=int(elem[3]) else: mobiledict[key]=[int(elem[2]),int(elem[3])]print(mobiledict)

E. Python3 中的字典是有序字典嗎

Python編程將多個字典文件合並成一個字典文件,代碼如下:
//例子:合並a.txt和b.txt兩個字典文件版權
def readf(filename):
lines = file(filename).readlines()
dic = {}
for i in lines:
i_ = i.split()
dic[i_[0]] = int(i_[1])
return dic

dica = readf('a.txt')
dicb = readf('b.txt')

lines = []
for i in dica:
percent = str(float(dicb[i])*100/dica[i])+'%'
s = ' '.join([i, str(dica[i]), str(dicb[i]), percent])
s += '\n'
lines.append(s)
//合並成一個字典文件c.txt
with open('c.txt', 'w') as f:
f.writelines(lines)
f.close()

F. python3列表轉字典怎麼轉的

list=['1:23232','2:12328937','3:12837']
dic={}
foriteminlist:
keys=item.split(':')
dic.update({keys[0]:keys[1]})
print(dic)


G. python 實現字典嵌套字典

from collections import defaultdict

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

H. 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層

'''

I. python怎樣獲取字典中前十個

由於字典長,我將前10個改為前5個,你只需要將,我回答中的4改為9就行。
例如字典
a={'the': 958035, 'of': 536684, 'and': 375233, 'one': 371796, 'in': 335503, 'a': 292250, 'to': 285093, 'zero': 235406, 'nine': 224705}
一:只想看看元素。如果字典很長,只想看前5個,可以先變成list,再取索引來看。利用了字典的items方法。
print(list(vocab.items())[:5]) # 先items取元素,再轉list,再切片取前5,最後print輸出
輸出為[('the', 958035), ('of', 536684), ('and', 375233), ('one', 371796), ('in', 335503)]
二。要獲取前5個元素。遍歷字典:
for i,(k,v) in enumerate(a.items()):
print({k:v},end="")
if i==4:
print()
break
輸出:{'the': 958035}{'of': 536684}{'and': 375233}{'one': 371796}{'in': 335503}
三。保持原來字典樣式,取前5個元素。
a={'the': 958035, 'of': 536684, 'and': 375233, 'one': 371796, 'in': 335503, 'a': 292250,
'to': 285093, 'zero': 235406, 'nine': 224705}
new_a = {}
for i,(k,v) in enumerate(a.items()):
new_a[k]=v
if i==4:
print(new_a)
break
輸出:{'the': 958035, 'of': 536684, 'and': 375233, 'one': 371796, 'in': 335503}

J. Python中如何獲取字典的子集

過濾制新建啊。

d1={'read':1,'blue':3,'black':4}

#d2包含了d1中所有key中含'a'的鍵與值
d2=dict((k,v)fork,vind1.items()if'a'ink)
print(d2)

#d3包含了d1中所有值為奇數的鍵與值
d3=dict((k,v)fork,vind1.items()ifv%2)
print(d3)