相关疑难解决方法(0)

Python:defaultdict的defaultdict?

有没有办法defaultdict(defaultdict(int))让以下代码工作?

for x in stuff:
    d[x.a][x.b] += x.c_int
Run Code Online (Sandbox Code Playgroud)

d需要根据x.ax.b元素进行临时构建.

我可以用:

for x in stuff:
    d[x.a,x.b] += x.c_int
Run Code Online (Sandbox Code Playgroud)

但后来我无法使用:

d.keys()
d[x.a].keys()
Run Code Online (Sandbox Code Playgroud)

python collections

287
推荐指数
6
解决办法
7万
查看次数

Python安全方法获取嵌套字典的值

我有一个嵌套字典.是否只有一种方法可以安全地获得价值?

try:
    example_dict['key1']['key2']
except KeyError:
    pass
Run Code Online (Sandbox Code Playgroud)

或者python有一个像get()嵌套字典的方法?

python methods dictionary except

111
推荐指数
11
解决办法
9万
查看次数

字典词典合并

我需要合并多个词典,这是我的例子:

dict1 = {1:{"a":{A}}, 2:{"b":{B}}}

dict2 = {2:{"c":{C}}, 3:{"d":{D}}
Run Code Online (Sandbox Code Playgroud)

随着A B CD树的叶,像{"info1":"value", "info2":"value2"}

字典有一个未知的级别(深度),它可能是 {2:{"c":{"z":{"y":{C}}}}}

在我的例子中,它代表一个目录/文件结构,其中节点是docs并且是文件.

我想合并它们以获得:

 dict3 = {1:{"a":{A}}, 2:{"b":{B},"c":{C}}, 3:{"d":{D}}}
Run Code Online (Sandbox Code Playgroud)

我不确定如何使用Python轻松完成这项工作.

python merge dictionary array-merge

108
推荐指数
12
解决办法
5万
查看次数

在Python中初始化词典的最佳方法是什么?

在Perl很多次,我会做这样的事情:

$myhash{foo}{bar}{baz} = 1
Run Code Online (Sandbox Code Playgroud)

我怎么把它翻译成Python?到目前为止,我有:

if not 'foo' in myhash:
    myhash['foo'] = {}
if not 'bar' in myhash['foo']:
    myhash['foo']['bar'] = {}
myhash['foo']['bar']['baz'] = 1
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

python autovivification

79
推荐指数
3
解决办法
7万
查看次数

具有可变深度的多级默认值?

我有一个很大的列表,如:

[A][B1][C1]=1
[A][B1][C2]=2
[A][B2]=3
[D][E][F][G]=4
Run Code Online (Sandbox Code Playgroud)

我想建立一个多级别的词典,如:

A
--B1
-----C1=1
-----C2=1
--B2=3
D
--E
----F
------G=4
Run Code Online (Sandbox Code Playgroud)

我知道,如果我用递归defaultdict我可以写table[A][B1][C1]=1,table[A][B2]=2但如果我硬编码的INSERT语句这只适用.

在解析列表时,我不需要预先调用多少[] table[key1][key2][...].

python dictionary

62
推荐指数
5
解决办法
3万
查看次数

在python中定义多维字典的最佳方法?

我目前正在使用下面的方法在python中定义一个多维字典.我的问题是:这是定义多维决策的首选方式吗?

from collections import defaultdict

def site_struct(): 
    return defaultdict(board_struct)

def board_struct(): 
    return defaultdict(user_struct)

def user_struct(): 
    return dict(pageviews=0,username='',comments=0)

userdict = defaultdict(site_struct)
Run Code Online (Sandbox Code Playgroud)

获得以下结构:

userdict['site1']['board1']['username'] = 'tommy'
Run Code Online (Sandbox Code Playgroud)

我也使用它来为用户动态增加计数器,而不必检查密钥是否存在或已经设置为0.例如:

userdict['site1']['board1']['username']['pageviews'] += 1
Run Code Online (Sandbox Code Playgroud)

python dictionary data-structures

29
推荐指数
2
解决办法
5万
查看次数

使用Python字典作为键(非嵌套)

Python不允许将字典用作其他字典中的键.是否有使用非嵌套字典作为键的解决方法?

更复杂的不可清除对象和我的特定用例的一般问题已经移到这里.我对用例的原始描述不正确.

python dictionary data-structures

25
推荐指数
3
解决办法
2万
查看次数

分配时Python字典键错误 - 我该如何解决这个问题?

我有一个我这样创建的字典:

myDict = {}
Run Code Online (Sandbox Code Playgroud)

然后我想在其中添加与另一个字典对应的键,其中我放了另一个值:

myDict[2000]['hello'] = 50
Run Code Online (Sandbox Code Playgroud)

所以,当我经过myDict[2000]['hello']某个地方时,它会给予50.

为什么Python不只是在那里创建这些条目?有什么问题?我认为只有当你尝试读取一个不存在的条目时才会出现KeyError,但我正在这里创建它?

python dictionary keyerror

17
推荐指数
3
解决办法
2万
查看次数

使用Python,我可以保留持久字典并对其进行修改吗?

所以,我想将字典存储在持久文件中.有没有办法使用常规字典方法来添加,打印或删除该文件中字典中的条目?

似乎我可以使用cPickle存储字典并加载它,但我不知道从哪里拿它.

python persistence dictionary object-persistence

13
推荐指数
3
解决办法
6930
查看次数

在dicts的词典中,你如何模仿Perl的自动生存行为?

谷歌和在线文档都没有提供我的查询的很多见解,所以我想我会在这里问社区.

在Perl中,您可以轻松设置哈希哈希哈希值并测试最终密钥,如下所示:

my $hash = {};
$hash{"element1"}{"sub1"}{"subsub1"} = "value1";
if (exists($hash{"element1"}{"sub1"}{"subsub1"})) {
   print "found value\n";
}
Run Code Online (Sandbox Code Playgroud)

什么是Python中的"最佳实践"等价物?

python dictionary autovivification

13
推荐指数
2
解决办法
3296
查看次数