python字典in
Ⅰ python字典WORD for m in WORD: print m為什麼我得到的m只是key的值
要得到value可以這樣
for m in WORD1:
print WORD1.get(m)
Ⅱ python字典,如何查找值中包含指定字元串的鍵
1、說明python中檢測字典的鍵中是否含有某串字元,便利字典鍵值,再判斷字元串是否在鍵值中即可。2、示例代碼:# 定義一個字典dic = {'1984/1/2': 123, '1984/1/3': 0, '1985/1/1': 156}# 遍歷字典鍵中是否包含1984for key in dic: if '1984' in key: print('鍵值中包含字元串"1984"') # 或者需要的其它操作 else: print('鍵值中不包含字元串"1984"')3、執行結果:鍵值中包含字元串"1984"鍵值中不包含字元串"1984"鍵值中包含字元串"1984"
4、其它說明:python使用for in直接操作字典就是遍歷字典的鍵值,python使用in操作來判斷字元串中是否包含子串最方便,要優於使用字元串的函數index或者find。
index函數在找不到子串時會報錯,find函數會返回-1。
Ⅲ python 值在數組或字典的查詢
#不求分只為學習交流~~
importitertools
a=[[1,2],[3,4,5],[6,8]]
b=[3,5]
#查找[3,5]in[3,4,5]
foriina:
print'bisina:',tuple(b)inlist(itertools.combinations(i,2))
#查找[3,5]in[3,4,5]以及[5,3]in[3,4,5]
b=[5,3]
foriina:
print'bisina:',tuple(b)inlist(itertools.permutations(i,2))
ps:數據量大也沒有辦法,又不能像資料庫存儲有索引分區等等,只有逐個遍歷
Ⅳ python 列表內有字典怎麼使用
Python字典是另一種可變容器模型,且可存儲任意類型對象,如字元串、數字、元組等其他容器模型。
一、創建字典
字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表。基本語法如下:
復制代碼代碼如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此創建字典:
復制代碼代碼如下:
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
注意:
每個鍵與值用冒號隔開(:),每對用逗號,每對用逗號分割,整體放在花括弧中({})。
鍵必須獨一無二,但值則不必。
值可以取任何數據類型,但必須是不可變的,如字元串,數或元組。
二、訪問字典里的值
把相應的鍵放入熟悉的方括弧,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
#以上實例輸出結果:
#dict['Name']: Zara
#dict['Age']: 7
如果用字典里沒有的鍵訪問數據,會輸出錯誤如下:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Alice']: ", dict['Alice'];
#以上實例輸出結果:
#dict['Zara']:
#Traceback (most recent call last):
# File "test.py", line 4, in <mole>
# print "dict['Alice']: ", dict['Alice'];
#KeyError: 'Alice'[/code]
三、修改字典
向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#以上實例輸出結果:
#dict['Age']: 8
#dict['School']: DPS School
四、刪除字典元素
能刪單一的元素也能清空字典,清空只需一項操作。
顯示刪除一個字典用del命令,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; # 刪除鍵是'Name'的條目
dict.clear(); # 清空詞典所有條目
del dict ; # 刪除詞典
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#但這會引發一個異常,因為用del後字典不再存在:
dict['Age']:
#Traceback (most recent call last):
# File "test.py", line 8, in <mole>
# print "dict['Age']: ", dict['Age'];
#TypeError: 'type' object is unsubscriptable
五、字典鍵的特性
字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。
兩個重要的點需要記住:
1)不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
print "dict['Name']: ", dict['Name'];
#以上實例輸出結果:
#dict['Name']: Manni
2)鍵必須不可變,所以可以用數,字元串或元組充當,所以用列表就不行,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7};
print "dict['Name']: ", dict['Name'];
#以上實例輸出結果:
#Traceback (most recent call last):
# File "test.py", line 3, in <mole>
# dict = {['Name']: 'Zara', 'Age': 7};
#TypeError: list objects are unhashable
六、字典內置函數&方法
Python字典包含了以下內置函數:
1、cmp(dict1, dict2):比較兩個字典元素。
2、len(dict):計算字典元素個數,即鍵的總數。
3、str(dict):輸出字典可列印的字元串表示。
4、type(variable):返回輸入的變數類型,如果變數是字典就返回字典類型。
Python字典包含了以下內置方法:
1、radiansdict.clear():刪除字典內所有元素
2、radiansdict.():返回一個字典的淺復制
3、radiansdict.fromkeys():創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
4、radiansdict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果鍵在字典dict里返回true,否則返回false
6、radiansdict.items():以列表返回可遍歷的(鍵, 值) 元組數組
7、radiansdict.keys():以列表返回一個字典所有的鍵
8、radiansdict.setdefault(key, default=None):和get()類似, 但如果鍵不已經存在於字典中,將會添加鍵並將值設為default
9、radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict里
10、radiansdict.values():以列表返回字典中的所有值
Ⅳ python如何檢測字典的鍵中是否含有某串字元
1、說明
python中檢測字典的鍵中是否含有某串字元,便利字典鍵值,再判斷字元串是否在鍵值中即可。
2、示例代碼:
# 定義一個字典
dic = {'1984/1/2': 123, '1984/1/3': 0, '1985/1/1': 156}
# 遍歷字典鍵中是否包含1984
for key in dic:
if '1984' in key:
print('鍵值中包含字元串"1984"')
# 或者需要的其它操作
else:
print('鍵值中不包含字元串"1984"')
3、執行結果:
鍵值中包含字元串"1984"
鍵值中不包含字元串"1984"
鍵值中包含字元串"1984"
4、其它說明:
python使用for in直接操作字典就是遍歷字典的鍵值,python使用in操作來判斷字元串中是否包含子串最方便,要優於使用字元串的函數index或者find。
index函數在找不到子串時會報錯,find函數會返回-1。
Ⅵ python怎樣獲取字典中前十個
字典為mydict={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11}
#列印字典的所有鍵值
print(mydict.keys())
#列印字典的所有值
print(mydict.values())
#列印字典的前5個鍵值
print([i for i in mydict.keys()][:5])
#列印字典的前8個值
print([i for i in mydict.values()][:8])
Ⅶ python字典的鍵是唯一的嗎
dict中鍵只有在值和類型完全相同的時候才視為一個鍵:
mydict = {1:1,'1':1} #此時mydict[1] 與 mydict['1']是兩個不同的鍵值
dict的一些常用方法:
clear(): #清空字典(): #淺復制字典.deep(): #深復制get('xx', 'return'): #訪問元素不存在時返回None,或者手動指定返回值has_key(): #檢查字典中是否含有鍵,相當於 in 關鍵字items(): #將字典以列表[(k,v),(k,v)]的形式返回iteritem(): #類似items,但返回的是迭代器對象keys(): #返回包含所有鍵的listiterkeys(): #返回包含所有鍵的迭代器對象values(): #同keysitervalues(): #同iterkeyspop('x'): #移除鍵值對並返回其值popitem(): #隨機移除一個鍵值對並返回其值update(otherdict): #
Ⅷ python字典操作問題
應為在python中dict是可變對象。用dic1賦值給dic3後,並沒有創建一個新的對象,dic3和dic1指向同一個對象。通過dic3改變其內容,就如同通過dic1改變對象內容一樣。
具體的內容你可以看看深拷貝和淺拷貝
import
defcom_weight(dic1,dic2):
dic3=.deep(dic1)#深拷貝,,,,
foriindic1.keys():
forjindic1[i].keys():
dic3[i][j]=dic1[i][j]-dic2[i][j]
printdic3
if__name__=='__main__':
dic1={1:{1:142264,2:142315},2:{3:142111},3:{3:142723}}
dic2={1:{1:142263,2:142312},2:{3:142110},3:{3:142722}}
print'__________________'
printdic1
printdic2
print'*******************'
com_weight(dic1,dic2)
print'~~~~~~~~~~~~~~~~~~~~~~~~'
printdic1
printdic2
Ⅸ python 字典的問題
題主你好,
寫在前面: 我先給題主舉個例子, 我先定義一個字典:
dict03 = {1:3, 5:7}
可以看出上面這個字典有兩個元素, 此時我們使用dict03.values()得到的結果為:
dict_values([3,7])
從上面這個結果可以看出, 字典的values方法,會將字典中的所有鍵值對的值生成一個列表, 作為dict_values()參數,並返回.
-----
上面沒有講到重點,只是作了一個引, 下面看到底問題出在哪了.
題主定義的dict03={0:[1,3,5,7]}, 這個字典, 其實只有一個鍵值對, 鍵是整數0,值是列表[1,3,5,7], 所以此時dict03.value()返回的值為 dict_values([[1,3,5,7]]), 重點就在這里, 注意,返回的是:
dict_values( [[ 1,3,5,7 ]] )
而不是
dict_values( [ 1,3,5,7 ] )
拋開前面這個dict_values, 也就是返回的是:
[[1,3,5,7]] 而不是 [1,3,5,7]
前者是含有一個元素的列表, 只不過這個元素本身也是一個列表;
後者是含有4個元素的列表, 每個元素都是整型數字;
而 x in y 這種形式中, 是看x是否存在於y中,
拿題主的代碼來說, 其實 i in dict03.values() 翻譯過來是:
5 in [[1,3,5,7]], 因為[[1,3,5,7]]這個列表就一個元素,為[1,3,5,7],所以5並不在[[1,3,5,7]]中,
如果翻譯過來是:
5 in [1,3,5,7],那麼我們得到的結果肯定是True, 因為[1,3,5,7]中有4個元素,而5恰在其中.
所以解決方法也就有了, 想辦法去掉[[1,3,5,7]]最外層的[].
代碼及測試截圖如下:
上圖中, 第一個紅框是將dict_values([[1,3,5,7]])轉換成 [[1,3,5,7]];
第二個紅框是將[[1,3,5,7]]轉換成[1,3,5,7];
此時最後一句print(5 in [1,3,5,7]) 也就得到了我們想要的結果True了.
-----
希望可以幫到題主, 歡迎追問.
Ⅹ python中字典的取值
字典訪問格式是——字典名[鍵名]
你的那句danjia=jiage['wupin']錯了,字典中沒有鍵名'wupin'。
按照你的意思,應該把輸入語句換下wupin=input(...),wupin存放字元串屬性的輸入,你字典里的鍵名是字元串屬性的。然後字典訪問的那句改為danjia=jiage[wupin]。這里字典訪問時就是訪問變數wupin對應的值的鍵名。