本文目錄一覽:
Python字典題求助
def displayDocument(d):
print(‘歸檔檔案清單:’)
for k, v in d.items():
print(f'{v} {k}’)
total = sum(d.values())
print(f’已歸檔檔案共計:{total} 件’)
displayDocument(d)
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字典的兩道題目
dd = dict()
while True:
key = input(“存入的鍵:”)
value = input(“存入的值:”)
dd[key] = value
flag = input(“是否繼續存入[y/Y/N/n]:”)
if flag in [‘n’,’N’]:
break
keys = list(dd.keys())
values = list(dd.values())
print(keys)
print(values)
我的是3版本,自己改改,輸入錯誤看看是不是數據類型問題
第五題:
letter = dict()
strs = input(“輸入一串字元串:”)
for i in strs:
letter.setdefault(i,0)
letter[i] += 1
keys = list(letter.keys())
keys.sort()
for i in keys:
print(i,letter[i])
原創文章,作者:DUTLP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317639.html