本文目录一览:
- 1、Python中,如何合并两个键相同,值为元祖类型的字典?
- 2、python中两个字典合并的问题。
- 3、python中,如何将多个字典组合成一个字典
- 4、怎样合并字典最符合Python语言习惯
- 5、python中 怎么对字典中key具有包含关系的字符串进行合并?
- 6、python列表中字典按指定相同的键值对合并到一个列表中
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中两个字典合并的问题。
把dict2里的所有元素当作dict的参数传递
比如
dict2的内容是:
{'test':1,'test2':2}
也就相当于:
dict(dict1, test=1, test2=2)
python中,如何将多个字典组合成一个字典
Python编程将多个字典文件合并成一个字典文件,代码如下:
//例子:合并a.txt和b.txt两个字典文件
def readf(filename):
lines = file(filename).readlines()
dic = {}
for i in lines:
i_ = i.split()
dic[i_[0]] = int(i_[1])
return dic
dica = readf('a.txt')
dicb = readf('b.txt')
lines = []
for i in dica:
percent = str(float(dicb[i])*100/dica[i])+'%'
s = ' '.join([i, str(dica[i]), str(dicb[i]), percent])
s += '\n'
lines.append(s)
//合并成一个字典文件c.txt
with open('c.txt', 'w') as f:
f.writelines(lines)
f.close()
怎样合并字典最符合Python语言习惯
需要满足以下要求:
如果存在重复的键,user字典中的值应覆盖defaults字典中的值;
defaults和user中的键可以是任意合法的键;
defaults和user中的值可以是任意值;
在创建context字典时,defaults和user的元素不能出现变化;
更新context字典时,不能更改defaults或user字典。
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列表中字典按指定相同的键值对合并到一个列表中
使用集合去重 + 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'}]
'''