相关疑难解决方法(0)

交叉口复杂性

在Python中,您可以获得两组的交集:

>>> s1 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s2 = {0, 3, 5, 6, 10}
>>> s1 & s2
set([3, 5, 6])
>>> s1.intersection(s2)
set([3, 5, 6])
Run Code Online (Sandbox Code Playgroud)

&谁知道这个intersection()算法的复杂性?

编辑:此外,有谁知道Python集背后的数据结构是什么?

python complexity-theory set

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

创建一个包含来自另一个字典的特定键值对的Python字典

我有一些看起来像这样的代码:

d = {'foo': True, 'bar': 42, 'baz': '!'}

a = {'foo': d['foo'], 'bar': d['bar']}
b = {'foo': d['foo'], 'baz': d['baz']}
c = {'bar': d['bar'], 'baz': d['baz']}
Run Code Online (Sandbox Code Playgroud)

当然有更好的方式来表达这一点.我实际上阅读了文档,希望字典的copy方法接受键包含在新字典中:

# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')
Run Code Online (Sandbox Code Playgroud)

我可以为此目的编写一个函数:

copydict = lambda dct, *keys: {key: dct[key] for key in keys}

a = copydict(d, 'foo', 'bar')
b = copydict(d, 'foo', 'baz')
c = copydict(d, 'bar', 'baz')
Run Code Online (Sandbox Code Playgroud)

有没有比上面更好的解决方案?

python dictionary

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

使用另一个字典更新字典,但只能使用非None值

从python 文档中我看到它dict有一个update(...)方法,但它似乎没有异常,我可能不想用新值更新旧字典.例如,当值为None.

这就是我目前所做的事情:

for key in new_dict.keys():
  new_value = new_dict.get(key)
  if new_value: old_dict[key] = new_value
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来使用新词典更新旧词典.

python

5
推荐指数
1
解决办法
2305
查看次数

标签 统计

python ×3

complexity-theory ×1

dictionary ×1

set ×1