Python数据结构之——字典
来源:互联网 发布:js获取字符串下标 编辑:程序博客网 时间:2024/05/22 13:43
字典
- 字典中的键是唯一的,而值不是唯一的,空字典--->{ }
创建字典
1
2
3
4
5
6
users
=
{
'Coder'
:
111
,
'Info'
:
222
}
# 直接赋值创建的方式
lst
=
[(
'Coder'
,
'Info'
),(
111
,
222
)]
users
=
dict
(lst)
# 通过函数创建一个字典
users
=
dict
(Coder
=
111
, Info
=
222
)
字典的基本操作
- len(dic) : 返回字典中键值对的个数
- dic[key] : 返回字典中key所对应的值
- dic[key] = value : 将value 与字典中的key关联
- del dic[key] : 删除字典中的key项
- key in dic : 检查字典中是否包含key
字典格式化字符串
- XXX%(key)sYYY % dic
1
2
users
=
{
'Coder'
:
111
,
'Info'
:
222
}
print
'Hi, %(Coder)s.'
%
users
# result: Hi, 111.
字典的方法
- dic.clear() 用于清除原始字典中的所有数据1234567891011121314151617181920
x
=
{}
x[
'key'
]
=
'value'
y
=
x
print
x
# result: {'key' : 'value'}
print
y
# result: {'key' : 'value'}
# x = {} # 这里只是更改了x所对应的value
# print x
# result: {}
# print y
# result: {'key' : 'value'}
#通过clear清楚原始字典
x.clear()
print
x
# reslut: {}
print
y
# reslut: {}
- y = x.copy() 将x字典的映射指向y,这是x,y引用同一个原始字典,x/y只要其中一个值更改了,另外一个也随之变化。1234567891011121314
x
=
{
'name'
:
'CoderInfo'
,
'ID'
:[
12
,
13
]}
y
=
x.copy()
x[
'name'
]
=
'test'
print
x
# result: {'name':'test','<span></span>ID':[12,13]}
print
y
# result: {'name':'CoderInfo','ID':[12,13]} 可以看出 如果替换字典中的值,x,y互相没有影响,也就是说原始字典没有被更改。
x[
'Age'
].remove(
12
)
print
x
# result: {'name':'CoderInfo','Age':[13]}
print
y
# result: {'name':'CoderInfo','Age':[13]} 但是如果是更新字典中的值,x,y就互相影响了,也就是说原始字典被更改了
这里就需要使用deepcopy了来解决原始字典更改的难题了,引入deepcopy即可
from
copy
import
deepcopy
- dic.fromkeys(lst) : 通过lst这个列表生成以列表元素为key的默认None为值的字典。12345
lst
=
[
'name'
,
'age'
]
print
{}.fromkeys(lst)
# result: {'age': None, 'name': None} 生成默认值为None的字典
print
{}.fromkeys(lst,
'Init'
)
# result: {'age': 'Init', 'name': 'Init'} 自己指定默认值
dic.get(key) : 通过get获取字典中的值比dic[key]的好处是如果字典中没有这个key,那么我们get会返回None,而dic[key]会直接报错
123print
{}.get(
'key'
)
# result: None
print
{}[
'key'
]
# result: 程序报错
dic.has_key(key) : 检查dic中是否有key这个键,与 key in dic 表达式完全等同
dic.items() : 将dic中的键值对按照列表的方式排列并且返回
123dic
=
{
'name'
:
'CoderInfo'
,
'age'
:
26
,
'Sex'
:
'Male'
}
print
dic.items()
# result: [('age', 26), ('name', 'CoderInfo'), ('Sex', 'Male')]
- dic.iteritems() : 与上面的基本一样只不过返回的不是一个列表,而是一个iterator对象
- dic.keys() : 以列表的形式返回dic中所有的key
- dic.iterkeys() : 以iterator对象的形式反回dic中所有的key
- dic.values() : 以列表的形式返回dic中所有的value
- dic.itervalues() : 以iterator对象的形式反回dic中所有的value
- dic.pop(key) :将key所对应的值返回,并且从dic中移除key这对键值对1234
dic
=
{
'name'
:
'CoderInfo'
,
'age'
:
26
,
'Sex'
:
'Male'
}
print
dic.pop(
'name'
)
# result: CoderInfo 返回值
print
dic
# result: {'name':'CoderInfo','age':26,'Sex':'Male'} 发现没有?key为name的键值对被移除了
- dic.popitem() : 随机去除dic中键值对,并且返回这个键值对的值
- dic.setdefault('name','new') : 如果dic中有name这个键,那么则返回dic中name对应的值,如果没有则返回new
- dic.update(another_dic) : 用一个字典去更形另外一个字典12345678
dic
=
{
'name'
:
'CoderInfo'
,
'age'
:
26
,
'Sex'
:
'Male'
}
print
dic
# result: {'age': 26, 'name': 'CoderInfo', 'Sex': 'Male'}
ano
=
{
'name'
:
'test'
}
dic.update(ano)
print
dic
# result: {'age': 26, 'name': 'test', 'Sex': 'Male'}
0 0
- Python数据结构之——字典
- python数据结构之字典
- python数据结构之字典
- python数据结构之字典
- python基础知识——内置数据结构(字典)
- Python数据结构——序列、字典
- Python学习笔记(四)——Python数据结构之字符串&字典
- Python dict dictionaries Python 数据结构——字典
- Python dict dictionaries Python 数据结构——字典
- Python学习笔记-数据结构之字典
- python 数据结构六 之 字典与集合
- Python数据结构:映射(map)——字典
- python之路——字典操作
- Python数据结构-字典
- Python数据结构--字典
- Python内存数据结构--字典
- python数据结构总结:字典
- Python基本数据结构之元组、集合与字典
- [linux]文件的特殊权限 SetUid SetGid StickBit
- iOS开发 - HTTP终结者 "ASI"
- 使用C# + Xamarin开发Android 应用 -- Datetime Picker
- 天声人語 20150601
- Java——抽象类实现接口
- Python数据结构之——字典
- TinyRMI---RMI的封装、扩展及踩到的坑的解决
- 在学习中获得正反馈
- IOS应用提交所需的ICON
- 3D数学基础及图形与游戏开发的学习 (二)
- java二叉排序树(BST)
- 日经春秋 20150601
- ckeditor官方API
- UIKit User Interface Catalog