标签: dictionary

如果字典键不可用,则返回None

如果它的键存在,我需要一种获取字典值的方法,或者None如果不存在则需要返回.

但是,KeyError如果搜索不存在的密钥,Python会引发异常.我知道我可以检查密钥,但我正在寻找更明确的东西.None如果密钥不存在,有没有办法返回?

python dictionary key nonetype

433
推荐指数
9
解决办法
30万
查看次数

过滤字典只包含某些键?

我有一个dict有一大堆条目.我只对他们中的一小部分感兴趣.是否有一种简单的方法可以修剪所有其他的?

python dictionary

430
推荐指数
13
解决办法
27万
查看次数

Python"扩展"为字典

哪个是用另一个字典扩展字典的最佳方法?例如:

>>> a = { "a" : 1, "b" : 2 }
>>> b = { "c" : 3, "d" : 4 }
>>> a
{'a': 1, 'b': 2}
>>> b
{'c': 3, 'd': 4}
Run Code Online (Sandbox Code Playgroud)

我正在寻找任何操作来获得这个避免for循环:

{ "a" : 1, "b" : 2, "c" : 3, "d" : 4 }
Run Code Online (Sandbox Code Playgroud)

我希望做的事情如下:

a.extend(b)  # This does not work
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

在Python中创建一个新的dict

我想用Python构建一个字典.但是,我看到的所有示例都是从列表中实例化字典等...

如何在Python中创建一个新的空字典?

python dictionary list

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

如何在C#中更新存储在Dictionary中的值?

如何更新字典中特定键的值Dictionary<string, int>

c# dictionary

412
推荐指数
6
解决办法
50万
查看次数

如何查找C++ std :: map中是否存在给定键

我正在尝试检查给定的密钥是否在地图中,有些不能这样做:

typedef map<string,string>::iterator mi;
map<string, string> m;
m.insert(make_pair("f","++--"));
pair<mi,mi> p = m.equal_range("f");//I'm not sure if equal_range does what I want
cout << p.first;//I'm getting error here
Run Code Online (Sandbox Code Playgroud)

那么如何打印p中的内容呢?

c++ dictionary stl

412
推荐指数
9
解决办法
50万
查看次数

是否在Python 3.6+中订购了字典?

字典在Python 3.6中排序(至少在CPython实现下),与之前的版本不同.这似乎是一个重大变化,但它只是文档中的一小段.它被描述为CPython实现细节而不是语言特性,但也暗示这可能成为未来的标准.

在保留元素顺序的同时,新字典实现如何比旧字典实现更好?

以下是文档中的文字:

dict()现在使用PyPy开创的"紧凑"表示.与Python 3.5相比,新dict()的内存使用量减少了20%到25%.PEP 468(在函数中保留**kwargs的顺序.)由此实现.这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖(这可能会在未来发生变化,但是在更改语言规范之前,希望在几种版本的语言中使用这个新的dict实现为所有当前和未来的Python实现强制命令保留语义;这也有助于保持与随机迭代顺序仍然有效的语言的旧版本的向后兼容性,例如Python 3.5).(由INADA Naoki在issue 27350中提供.最初由Raymond Hettinger提出的想法.)

2017年12月更新:Python 3.7 保证dict保留插入顺序

python dictionary python-3.x python-internals python-3.6

386
推荐指数
5
解决办法
8万
查看次数

Python词典搜索列表

假设我有这个:

[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]
Run Code Online (Sandbox Code Playgroud)

并通过搜索"Pam"作为名称,我想检索相关字典:{name:"Pam",年龄:7}

怎么做到这一点?

python search dictionary

382
推荐指数
19
解决办法
44万
查看次数

错误:"'dict'对象没有属性'iteritems'"

我正在尝试使用NetworkX读取一个Shapefile并使用该函数write_shp()生成将包含节点和边缘的Shapefile(在此示例之后 < - 此链接现在已经死了),但是当我尝试运行它给出的代码时我有以下错误:

Traceback (most recent call last):   File
"C:/Users/Felipe/PycharmProjects/untitled/asdf.py", line 4, in
<module>
    nx.write_shp(redVial, "shapefiles")   File "C:\Python34\lib\site-packages\networkx\readwrite\nx_shp.py", line
192, in write_shp
    for key, data in e[2].iteritems(): AttributeError: 'dict' object has no attribute 'iteritems'
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 3.4并通过pip install安装NetworkX.

这个错误之前,它已经给了我另外一个说:"x范围不存在"或类似的东西,所以我看着它,只是改变xrangerange在nx_shp.py文件,这似乎解决它.

根据我的阅读,它可能与Python版本(Python2与Python3)有关.

python dictionary

370
推荐指数
4
解决办法
34万
查看次数

Python字典理解

是否可以在Python中创建字典理解(用于键)?

没有列表推导,你可以使用这样的东西:

l = []
for n in range(1, 11):
    l.append(n)
Run Code Online (Sandbox Code Playgroud)

我们可以将其缩短为列表理解:l = [n for n in range(1, 11)].

但是,假设我想将字典的键设置为相同的值.我可以:

d = {}
for n in range(1, 11):
     d[n] = True # same value for each
Run Code Online (Sandbox Code Playgroud)

我试过这个:

d = {}
d[i for i in range(1, 11)] = True
Run Code Online (Sandbox Code Playgroud)

不过,我得到一个SyntaxErrorfor.

另外(我不需要这部分,但只是想知道),你能否将字典的键设置为一堆不同的值,如下所示:

d = {}
for n in range(1, 11):
    d[n] = n
Run Code Online (Sandbox Code Playgroud)

字典理解是否可以实现?

d = {}
d[i for i in range(1, 11)] = [x for …
Run Code Online (Sandbox Code Playgroud)

python dictionary list-comprehension

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