相关疑难解决方法(0)

如何在python中组合字典

我有2本词典

dict1 = {'color': {'attri': ['Black']}, 'diameter': {'attri': ['(300, 600)']}}

dict2 = {'size': {'op':'in'}, 'diameter': {'op':'range'}, 'color': {'op':'in'}}
Run Code Online (Sandbox Code Playgroud)

我想结合这两个词典

dict3 = {'color': {'op': 'in', 'attri': ['Black']}, 'diameter': {'op': 'range', 'attri': ['(300,600)']}}
Run Code Online (Sandbox Code Playgroud)

python django

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

从列表中生成字典的最快方法,其中键 == 值

我有一个清单,说:

NUM = 100
my_list = list(range(NUM))
Run Code Online (Sandbox Code Playgroud)

我想生成一个dict键等于值的东西,比如:

my_dict = {item: item for item in my_list}
Run Code Online (Sandbox Code Playgroud)

或者:

my_dict = dict(zip(my_list, my_list))
Run Code Online (Sandbox Code Playgroud)

我已经运行了一些微基准测试,看起来它们的速度相似,但我希望第二个会更快,因为循环应该在 C 中发生。

例如,以下构造:

my_dict = {key: SOMETHING for key in keys}
Run Code Online (Sandbox Code Playgroud)

翻译成更快:

my_dict = dict.fromkeys(k, SOMETHING)
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:有没有类似的这样的构造{x: x for x in my_list}


编辑

我已经检查过dir(dict),在这个方向上似乎没有任何东西(我希望它被称为类似的东西dict.fromitems())。


编辑 2

dict.fromitems()与此特定用例相比,类似的方法具有更广泛的应用,因为:

dict.fromitems(keys, values)
Run Code Online (Sandbox Code Playgroud)

原则上可以同时替代两者:

{k, v for k, v in zip(keys, values)}
Run Code Online (Sandbox Code Playgroud)

和:

dict(zip(keys, values))
Run Code Online (Sandbox Code Playgroud)

python performance dictionary list

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

合并两本词典

我有两个字典如下:

D1={'a':1,'b':2,'c':3}

D2={'b':2,'c':3,'d':1}

我想合并这两个词典,结果如下:

D3={'a':1,'b':2,'c':3,'b':2,'c':3,'d':1}

我怎么能在python中实现这一点?

python

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

python中的字典声明

我已经宣布了一本字典

data=dict(key="sadasfd",secret="1213",to="23232112",text="sucess",from='nattu')
Run Code Online (Sandbox Code Playgroud)

它在python中显示错误,表示使用了关键字.为什么不服用from

每当我from在字典中遇到密钥时,我都无法使用它.

python dictionary python-2.7

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

如何使用另一个字典中给出的默认键:值对更新 python 字典

假设希望字典存在某些键。如果缺少默认值,是否有一种简单的方法可以添加这些具有默认值的特定键?

例如:

default_dict = {'name': '', 'height': 100, 'age': 20} 

d = {'name': 'James', 'age': 65}
d.set_defaults(default_dict)
Run Code Online (Sandbox Code Playgroud)

将字典更新d

{'name': 'James', 'age': 65, 'height': 100}
Run Code Online (Sandbox Code Playgroud)

其中d保留了 的原始值,只添加了缺失的键。

default_dict不该在这个过程中被破坏。

python dictionary

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

python 在嵌套字典中追加字典

我有这本字典:

appointment = { soccer = {
                           day : 20,
                           month : april
                          }
               }
Run Code Online (Sandbox Code Playgroud)

我怎样才能在同一结构中插入这个字典?

appointment = { gym = {
                           day : 5,
                           month : may
                          }
               }
Run Code Online (Sandbox Code Playgroud)

预期输出:

appointment = { soccer = {
                           day : 20,
                           month : april
                          },
                 gym = {
                           day : 5,
                           month : may
                          }
               }
Run Code Online (Sandbox Code Playgroud)

我如何通过代码连接这个dictio?

python

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

简化.get返回时的条件

是否可以简化此操作:

def method(self, **kwargs):
    if kwargs.get('profile_id') is None:
        kwargs['profile_id'] = 'something1'
    if kwargs.get('status') is None:
        kwargs['status'] = 'something2'
    if kwargs.get('account_type') is None:
        kwargs['account_type'] = 'something3'
    if kwargs.get('external_account_id') is None:
        kwargs['external_account_id'] = 'something4'
    if kwargs.get('vendor') is None:
        kwargs['vendor'] = 'something5'
    if kwargs.get('created_timestamp') is None:
        kwargs['created_timestamp'] = 'something6'

    return ClassOne.objects.create(**kwargs)
Run Code Online (Sandbox Code Playgroud)

这行得通,但是我只是好奇是否还有更优雅的东西。我正在考虑做这样的事情:

kwargs['profile_id'] = kwargs.get('profile_id') or 'something1'
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x

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

将字典附加到另一个字典未得到正确顺序的字典

我有 4 个 python 字典,其中每个键的值是另一个字典:

a={'a': {'e': 4}}
b={'b': {'f': 5}}
c={'c': {'g': 6}}
d={'d': {'h': 7}}
Run Code Online (Sandbox Code Playgroud)

我想将字典 a、b、c 和 d 合并在一起,这样我就有了一个最终的字典,如下所示:

{'a': {'e': 4}, 'b': {'f': 5}, 'c': {'g': 6}, 'd': {'h': 7}}
Run Code Online (Sandbox Code Playgroud)

其中父字典的顺序是我添加每个原始字典的顺序。

所以我创建了一个空字典并执行了以下操作:

x={} #create empty dictionary
x.update(a) #update with first dictionary
print x
x.update(b) #update with second dictionary
print x
x.update(c) #update with third dictionary
print x
x.update(d) #update with forth dictionary
print x
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

{'a': {'e': 4}}
{'a': {'e': 4}, 'b': {'f': 5}}
{'a': {'e': …
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

如何连接dicts(值与同一键和新键的值)?

我有连接词典的问题.有这么多代码,所以我在示例中显示我的问题是什么.

d1 = {'the':3, 'fine':4, 'word':2}
+
d2 = {'the':2, 'fine':4, 'word':1, 'knight':1, 'orange':1}
+
d3 = {'the':5, 'fine':8, 'word':3, 'sequel':1, 'jimbo':1}
=
finald = {'the':10, 'fine':16, 'word':6, 'knight':1, 'orange':1, 'sequel':1, 'jimbo':1}
Run Code Online (Sandbox Code Playgroud)

它是wordcloud的字数.我不知道如何连接键的值,这对我来说很困惑.请帮忙.最好的祝福

python dictionary textedit word-cloud

0
推荐指数
1
解决办法
561
查看次数

寻找一种更 Pythonic 的方式来将一个充满字典的列表合并成一个?

我有一个包含一堆字典的列表,我试图将它们合并为一个

看起来像这样...

[{'name':'name', 'value':'john'}, {'name':'sex', 'value':'male'}, {'name':'color', 'value':'blue'}, {'name':'car', 'value':'toyota'}, {'name':'job', 'value':'cashier'}]
Run Code Online (Sandbox Code Playgroud)

我试图将它们全部组合成一个字典,以便名称值是键,值是值。现在我正在做这样的事情并且它工作正常但我知道有一个更简单的方法

keys = []
vals = []

for item in a:
    if item['name']:
        keys.append(item['name'])

    if item['value']:
        vals.append(item['value'])

md = dict(zip(keys,vals))
Run Code Online (Sandbox Code Playgroud)

任何指导将不胜感激...谢谢

python json dictionary list-comprehension list

0
推荐指数
1
解决办法
62
查看次数