題目是這樣的:
給定乙個字典dict1,將其轉換成dict2:dict1 =, ],
'warning
':[, ]
}dict2 = , ], '
sjzx_sy21_121.201.56.4
': [, ]}
腦子摩擦了乙個下午:
dict1 =,],'warning
': [,
]}def
getvalue(dictcome, key):
retdict ={}
for item in dictcome.get(key): #
遍歷傳入字典的key為傳入key值的對應value,item為
valuelist = list(item.values()) #
將item的value值儲存為列表
#['sjzx_sy22_121.201.56.5', 23]//['sjzx_sy21_121.201.56.4', 4]
retdict[valuelist[0]] = #
儲存為dict2字典的格式,主要是提取dict2的key
return retdict #
, 'sjzx_sy21_121.201.56.4': }
def combindtwo(dicta, dictb): #
合併兩個字典,key值唯一,相同key對應的value儲存為列**式
for i,j in
dictb.items():
if i in
dicta.keys():
listtmp =[dicta.get(i), j]
dicta.update(
': listtmp})
else
: dicta.update(
': dictb[i]})
return
dicta
tmplist =
for key in
dict1.keys():
#這裡按dict1的key值呼叫getvalue引數,將dict1換一種格式輸入
#將獲取到的字典儲存在列表裡,但是下面呼叫combindtwo函式時,我是直接用item取的。。。我覺得怪怪的。但不知道該如何做??
print('
原字典為:')
(dict1)
print('
修改後的字典如下:')
print(combindtwo(tmplist[0], tmplist[1]))
最後輸入結果為:(也算是達到目的了吧= =)
原字典為:, ], '
warning
': [, ]}
修改後的字典如下:
, ], '
sjzx_sy21_121.201.56.4
': [, ]}
然後看一下給我出題的大佬寫的程式:
defget_ip_count(d):
result ={}
for key, values in
d.items():
for ip_result in
values:
#以 ip 為鍵,設定值為預設空列表
result.setdefault(ip_result['
key'
], )
#result[ip_result['key']] =
result_count ={}
result_count[key] = ip_result['
doc_count']
result[ip_result[
'key
'
return
result
if__name__ == '
__main__':
d = ,
],'warning
': [,]}
result =get_ip_count(d)
print(result)
setdefault()方法:
dict.setdefault(key[,default=none])
呵呵。我要繼續努力!
python的列表 元組與字典
python支援一種資料結構的基本概念,即容器 container 容器基本上就是包含其他物件的物件。兩種主要的容器就是序列 如列表和元組 與對映 如字典 在序列中,每個元素都有編號,這個編號我們也可以稱之為索引,從0開始遞增。而在對映中,每個元素都有名稱 也叫做鍵 列表的特點就是可以修改,而且列表...
Python中的列表與字典
1,列表 由一系列按特定順序排列的元素組成。你可以建立包含字母表中所有字母 數字0 9或所有家庭成員姓名的列表 也可以將任何東西加入列表中,其中的元素之間可以沒有 任何關係。鑑於列表通常包含多個元素,給列表指定乙個表示複數的名稱 如letters digits 或names 是個不錯的主意。在pyt...
python 列表與字典轉換
在寫爬蟲的時候,經常需要處理cookie,requests庫里的cookie是dict,但是headers cookie 卻是乙個key value的字串。coding utf 8 import logging key value列表轉換成cookie字典 defcookie list 2 dict...