當前位置:首頁 » 編程語言 » python字典合並

python字典合並

發布時間: 2022-11-20 11:37:57

python中,如何將多個字典組合成一個字典

Python編程將多個字典文件合並成一個字典文件,代碼如下:

//例子:合並a.txt和b.txt兩個字典文件
defreadf(filename):
lines=file(filename).readlines()
dic={}
foriinlines:
i_=i.split()
dic[i_[0]]=int(i_[1])
returndic

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

lines=[]
foriindica:
percent=str(float(dicb[i])*100/dica[i])+'%'
s=''.join([i,str(dica[i]),str(dicb[i]),percent])
s+=' '
lines.append(s)
//合並成一個字典文件c.txt
withopen('c.txt','w')asf:
f.writelines(lines)
f.close()

② python列表中字典按指定相同的鍵值對合並到一個列表中

使用集合去重 + local動態變數設置 + exec 字元串解析 可實現,話不多說,代碼在下面,格式有問題調整下空格:
list_msg = [{'date':'2019-08-17', 'type':'旅遊', 'over_im':'12365'},
{'date':'2019-08-17', 'type':'haha', 'over_im':'12365'},
{'date':'2019-08-18', 'type':'娛樂', 'over_im':'11234'},{'date':'2019-08-19', 'type':'生活', 'over_im':'9532'},]

# 去除字典重復的data ,獲取數據包含多少天內容
set_mark = {i['date'] for i in list_msg}
# 去除非法命名字元作為列表後綴:
ver_name = [i.replace('-','_') for i in set_mark]
# 給列表排序,確保按照順序輸出變數
ver_name.sort()
# 設置動態命名模板
list_name_template = 'list_data_'
# 創建local對象,准備創建動態變數
createver = locals()
# 循環遍歷數據並創建動態列表變數接收
for mark in set_mark:
# 動態創建變數
createver[list_name_template + mark.replace('-','_')] \
= [dict_current for dict_current in list_msg if dict_current['date'] == mark]
for name in ver_name:
print(list_name_template + name + ':' ,end='\t') # 列印自動創建的變數名稱,採用tab分隔
exec('print('+list_name_template + name +')') # 列印變數內容(列表)

'''
列印結果
list_data_2019_08_17: [{'date': '2019-08-17', 'type': '旅遊', 'over_im': '12365'}, {'date': '2019-08-17', 'type': 'haha', 'over_im': '12365'}]
list_data_2019_08_18: [{'date': '2019-08-18', 'type': '娛樂', 'over_im': '11234'}]
list_data_2019_08_19: [{'date': '2019-08-19', 'type': '生活', 'over_im': '9532'}]
'''

③ Python中,如何合並兩個鍵相同,值為元祖類型的字典

你好,下面是對應的代碼:把元祖變成list合並
C = {}
for key in list(set(dicxs) | set(diccj)):
if dicxs.get(key) and diccj.get(key):
C[key]= list(dicxs[key])+list(diccj[key])
elif dicxs.get(key):
C[key]=list(dicxs[key])
else:
C[key]=list(diccj[key])

④ python中 怎麼對字典中key具有包含關系的字元串進行合並

1.
python中一個字典不能有同一個鍵對應多個值的情況存在.
你給的樣例若直接賦值給某個字典變數將會是如下效果:
>>>
d
=
{'abcd':[1,2,3],'bcd':[1,2,3],'abcd':[2,3,4],'bcd':[2,3,4]}
>>>
d
{'abcd':
[2,
3,
4],
'bcd':
[2,
3,
4]}
>>>
同鍵的後值覆蓋前值;
2.
字典合並操作要視你的合並演算法而定,例如:
>>>
d0
=
{'abcd':[1,2,3],'bcd':[1,2,3]}
>>>
d1
=
{'abcd':[2,3,4],'bcd':[2,3,4]}
>>>
#
列表疊加:
>>>
for
k,v
in
d1.items():
...
d0[k]
=
d0.get(k,[])+v
...
>>>
d0
{'abcd':
[1,
2,
3,
2,
3,
4],
'bcd':
[1,
2,
3,
2,
3,
4]}
>>>
#
合並為無重復項的條目
>>>
for
k,v
in
d1.items():
...
d0[k]
=
list(set(d0.get(k,[])+v))
>>>
d0
=
{'abcd':[1,2,3],'bcd':[1,2,3]}
>>>
for
k,v
in
d1.items():
...
d0[k]
=
list(set(d0.get(k,[])+v))
...
>>>
d0
{'abcd':
[1,
2,
3,
4],
'bcd':
[1,
2,
3,
4]}
>>>

⑤ Python將兩個字典合並成一個字典

d1={'tudou':3,'yangcong':1,'mitao':8}
d2={'mitao':3,'pantao':5,'wutongshu':2,'lian':1}
d1.update(d2)

這個d2就追加到d1里了,但是update返回的是None,是更新了d1的內容,請注意使用
如果d1和d2有重復的鍵,則會重寫。

⑥ 利用Python進行數據分析筆記:3.1數據結構

元組是一種固定長度、不可變的Python對象序列。創建元組最簡單的辦法是用逗號分隔序列值:

tuple 函數將任意序列或迭代器轉換為元組:

中括弧 [] 可以獲取元組的元素, Python中序列索引從0開始

元組一旦創建,各個位置上的對象是無法被修改的,如果元組的一個對象是可變的,例如列表,你可以在它內部進行修改:

可以使用 + 號連接元組來生成更長的元組:

元組乘以整數,則會和列表一樣,生成含有多份拷貝的元組:

將元組型的表達式賦值給變數,Python會對等號右邊的值進行拆包:

拆包的一個常用場景就是遍歷元組或列表組成的序列:

*rest 用於在函數調用時獲取任意長度的位置參數列表:

count 用於計量某個數值在元組中出現的次數:

列表的長度可變,內容可以修改。可以使用 [] 或者 list 類型函數來定義列表:

append 方法將元素添加到列表尾部:

insert 方法可以將元素插入到指定列表位置:
插入位置范圍在0到列表長度之間

pop 是 insert 的反操作,將特定位置的元素移除並返回:

remove 方法會定位第一個符合要求的值並移除它:

in 關鍵字可以檢查一個值是否在列表中;
not in 表示不在:

+ 號可以連接兩個列表:

extend 方法可以向該列表添加多個元素:

使用 extend 將元素添加到已經存在的列表是更好的方式,比 + 快。

sort 方法可以對列表進行排序:

key 可以傳遞一個用於生成排序值的函數,例如通過字元串的長度進行排序:

bisect.bisect 找到元素應當被插入的位置,返回位置信息
bisect.insort 將元素插入到已排序列表的相應位置保持序列排序

bisect 模塊的函數並不會檢查列表是否已經排序,因此對未排序列表使用bisect不會報錯,但是可能導致不正確結果

切片符號可以對大多數序列類型選取子集,基本形式是 [start:stop]
起始位置start索引包含,結束位置stop索引不包含

切片還可以將序列賦值給變數:

start和stop可以省略,默認傳入起始位置或結束位置,負索引可以從序列尾部進行索引:

步進值 step 可以在第二個冒號後面使用, 意思是每隔多少個數取一個值:

對列表或元組進行翻轉時,一種很聰明的用法時向步進值傳值-1:

dict(字典)可能是Python內建數據結構中最重要的,它更為常用的名字是 哈希表 或者 關聯數組
字典是鍵值對集合,其中鍵和值都是Python對象。
{} 是創建字典的一種方式,字典中用逗號將鍵值對分隔:

你可以訪問、插入或設置字典中的元素,:

in 檢查字典是否含有一個鍵:

del 或 pop 方法刪除值, pop 方法會在刪除的同時返回被刪的值,並刪除鍵:

update 方法將兩個字典合並:
update方法改變了字典元素位置,對於字典中已經存在的鍵,如果傳給update方法的數據也含有相同的鍵,則它的值將會被覆蓋。

字典的值可以是任何Python對象,但鍵必須是不可變的對象,比如標量類型(整數、浮點數、字元串)或元組(且元組內對象也必須是不可變對象)。
通過 hash 函數可以檢查一個對象是否可以哈希化(即是否可以用作字典的鍵):

集合是一種無序且元素唯一的容器。

set 函數或者是用字面值集與大括弧,創建集合:

union 方法或 | 二元操作符獲得兩個集合的聯合即兩個集合中不同元素的並集:

intersection 方法或 & 操作符獲得交集即兩個集合中同時包含的元素:

常用的集合方法列表:

和字典類似,集合的元素必須是不可變的。如果想要包含列表型的元素,必須先轉換為元組:

⑦ python求合並這兩個字典

dict1={'1': ('a', 'b', 'c', 'd'), '2': ('f', 'w', 'm'), '3':( 'p', 'l', 'w')}
dict2={'1': ('b', 'w', 'q'), '2':( 'i', 'z', 'm'), '3':( 'p', 'w', 'o')}

dict={}
for key in dict1.keys():
dict[key]=list(dict1[key])

for key in dict2.keys():
if dict.has_key(key):
#append
for v in dict2[key]:
if not v in dict[key]:
dict[key].append(v)
else:
dict[key]=list(dict2[key])

print dict

⑧ Python中,如何合並兩個鍵相同,值為元祖類型的字典

假設原鍵是
key
新建是
newkey
先刪除原鍵值對,保存值,然後以新鍵插入字典
操作可以合並成一條一句
dict[newkey]
=
dict.pop(key)

⑨ 如何合並python字典里的列表中的元素

l2 = l1[:2]
l2.append(''.join(l1[2:]))
# l1是原列表,l2是處理後的列表

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:609
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:29
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:104
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:736
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:800
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:507
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:369