2024-09-25 08:27:12 发布
网友
列表1
[]
字典1
字典2
{ 'test': 'grosserbaum', 'alter': 3, 'voegel': ['meise'] }
做点什么把字典合并在一起。。。。
结果:
[ { 'test': 'baum', 'alter': 0, 'voegel': ['amsel'] }, { 'test': 'grosserbaum', 'alter': 3, 'voegel': ['meise'] } ]
如何使用Python实现这一点?谢谢!在
如果您的dict中的数据从未更改,并且您需要密钥,那么您应该选择使用^{}s
dict
您需要将嵌套的list转换为tuple,因为列表是不可散列的。然后,您可以将现有字典放入namedtuple(或直接创建它们)。在
list
tuple
d1 = { 'test': 'baum', 'alter': 0, 'voegel': ('amsel') } d2 = { 'test': 'grosserbaum', 'alter': 3, 'voegel': ('meise') } from collections import namedtuple Test = namedtuple("Test", "test alter voegel") t1 = Test(**d1) t2 = Test(**d2) print(t1) # Test(test='baum', alter=0, voegel='amsel') print(t2) # Test(test='grosserbaum', alter=3, voegel='meise') print(set([t1, t2])) # {Test(test='grosserbaum', alter=3, voegel='meise'), Test(test='baum', alter=0, voegel='amsel')}
现在您可以将这些namedtuples保存在set中,这样集合将只包含唯一的项!另外,namedtuples使用的内存比dict少,因为它实现了^{}。在
set
d1={ 'test': 'baum', 'alter': 0, 'voegel': ['amsel'] } d2={ 'test': 'grosserbaum', 'alter': 3, 'voegel': ['meise'] }
让我们试试你的预期输出
{d1:d2} #TypeError: unhashable type: 'dict'
由于无法对dict类型进行哈希运算,因此引发错误。与list类型类似,因为它不附带哈希函数。因此,故事的寓意是为了使一个对象是散列的,它必须是不可变的类型,比如string,integer或{}。在
string
integer
以防你只是想重复这些句子
或者
(d1,d2)# convert into a tuple
或者用不可变的键创建一个新列表
{'d1':d1,'d2':d2}
供进一步参考https://www.asmeurer.com/blog/posts/what-happens-when-you-mess-with-hashing-in-python/
如果您的} s
dict
中的数据从未更改,并且您需要密钥,那么您应该选择使用^{您需要将嵌套的
list
转换为tuple
,因为列表是不可散列的。然后,您可以将现有字典放入namedtuple(或直接创建它们)。在现在您可以将这些namedtuples保存在} 。在
set
中,这样集合将只包含唯一的项!另外,namedtuples使用的内存比dict少,因为它实现了^{让我们试试你的预期输出
由于无法对}。在
dict
类型进行哈希运算,因此引发错误。与list类型类似,因为它不附带哈希函数。因此,故事的寓意是为了使一个对象是散列的,它必须是不可变的类型,比如string
,integer
或{以防你只是想重复这些句子
^{pr2}$或者
或者用不可变的键创建一个新列表
供进一步参考https://www.asmeurer.com/blog/posts/what-happens-when-you-mess-with-hashing-in-python/
相关问题 更多 >
编程相关推荐