Python TQC考題708 詞典合併, dict1.update(dict2)

加入好友
加入社群
Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

#Python TQC考題708 詞典合併

“””

#視訊解題其實只用一個辭典

#題目最終結果只要合併辭典,

#解題真的只需要一個辭典

#其他應用若需用到原辭典

#可以參考第二個解法

#使用dict1.update(dict2)合併兩辭典

#非dict3 = dict1.update(dict2)

# dict3會是空值,跟.remove() .pop()類似

702 數組合併排序

708 詞典合併

這兩題都是兩個合併為一個

所以只為解題的話

都可以只用一個做

“””

d={}
for i in range(2):
print(“Create dict%d:”%(i+1))
#dict之後沒有空格,要用%d,不能用逗點
#i從0開始 %(i+1)
while(True):
k=input(“Key: “)
#:後面有空格
if k==”end”:break
v=input(“Value: “)
#:後面有空格
d[k]=v
#用[],非{}

d1=sorted(d)
#只有收集d的key,為一list

for k in d1:
print(“%s: %s” %(k,d[k]))

“””

題目沒有重複key

若有重複key,

dictionary後面輸入的value

會蓋掉前面的value

“””

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

 

#第二種作法:

def compute():
dic={}
while True:
key=input(“Key: “)
if key==”end”:
return dic
value=input(“Value: “)
dic[key]=value
#增加字典的元素

print(“Create dict1”)
dict1=compute()

print(“Create dict2”)
dict2=compute()

dict1.update(dict2)
#dict2被dict1合併
dict3=sorted(dict1)
# 跟.sort()不一樣,
# .sort()對原字典排序
# sorted()不影響原字典

#字典無法用.sort()
# 只有key沒有value
print(dict3)
#只是看看,題目不需要

for i in dict3: #i=a,b,c,d,e
print(“%s: %s” %(i,dict1[i]))

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

 

#再練習一次:

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

 

#再練習一次:

def dic():
dic={}
while True:
k=input(“Key: “)
if k == “end” : break
v=input(“Value: “)
dic[k] = v
return dic #這一行沒有任何: 

def main():
print(“Create dict1: “)
dic1 = dic()

print(“Create dict2: “)
dic2 = dic()

dic1.update(dic2)
#非dic1=dic1.update(dic2)
key = sorted(dic1)
for k in key:
print(“%s: %s” \
%(k,dic1[k]))
main()

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

 

#才兩個dict而已,不一定要用for迴圈

#複製過來,第二個dict改一下很快

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

 

#只要頭腦夠清楚的話

#最後兩行可以改成如下:

Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

 

加入好友
加入社群
Python TQC考題708 詞典合併, dict1.update(dict2) - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *