dict字典

Posted 炎之朱雀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dict字典相关的知识,希望对你有一定的参考价值。

--------------以下部分摘自While老师的教学资料

字典:

字典一个元素呈键值对的形式,以逗号分割,以大括号包围的无序的,可以修改的序列。

字典python基础数据类型当中唯一一个映射关系的数据类型通常对应JSON

定义:

Zip函数:将几个序列对应索引位上的元素分到一个元组当中,形成一个列表,子元组的个数取决于最短序列的长度

由于字典无序,所以我们定义字典和字典生成之后的元素的顺序是不同的

dict

{}

Fromkeys 以后面的序列的元素为键,默认值为None的字典

字典的特点:

因为字典是无序的,所以字典没有索引值,

因为字典没有索引值,所以字典以键取值(字典的键相当于列表的索引)

因为字典以键取值,所以字典的键唯一且不可修改,

因为字典的键不可修改,所以列表和字典不可以给字典做键。

字典的方法

字典的取值

keys

获取字典所有的键

values

获取字典所有的值

get

以键取值,如果指定键不存在,默认返回None,可以指定返回内容

update

更新指定键的内容,如果键不存在,创建

setdefault

设置默认,如果键存在,返回值,如果键不存在,创造键,值默认为None,值也可以自定义

items

返回字典键值呈元组形式的格式

 

 

字典的删除

pop

弹出,返回并删除指定键对应的值

popitem

随机弹出一个键值元组,这里随机的原因是因为字典无序

clear

清空字典

字典的判断

has_key

判断指定的键是否在字典当中,即将被废除,之后我们用in

 

视图模式

viewitems

视图模式的主要特征是与字典保持同步,在我们python基础部分不做深入研究

viewkeys

viewvalues

迭代模式

Iteritems

在python2.4版本之后,为了提高python运行效率python提出了迭代器、生成器、装饰器的定义,而字典的迭代模式正式去用了迭代器原理,

当我们直接调用的时候,我们只能得到一个内存地址,当我们具体想要取值的时候,需要借助next方法

Iterkeys

itervalues

    

copy 浅拷贝,进行浅拷贝

在python当中,浅拷贝指的是拷贝对象和被拷贝对象的嵌套部分指向统一的内存。

 

str

list

tuple

dict

是否有序

是否可修改

方法多少

很多

一般

很少

较多   映射关系

 

 

d = {}
print(type(d))
emp = [\'Tom\', 20, 3900.00]
print(emp[0])
employee = {"name": "Tom", "age": 20, "salary": 3900.00}  # 字典里的:隔开了键与值,然后用,隔开其他的键值对
print(employee)
book = dict(title="pyrhon入门", author="Tom", price=59.00)  # 字典也可以用函数方式声明,但是参数要以=形式传参,键也会以字符串形式出现
print(book)
lit = [("name", "Tom"), ("age", 20)]  # 有规律的列表也可以转换为字典
emp2 = dict(lit)
print(emp2)
keys = ["name", "age", "job"]
emp3 = dict.fromkeys(keys)  # .fromkeys是一个方法,可以向变量传入一个列表,,列表里的每一个元素作为字典表的一个键,如果没有赋值,则以None形式表现出来
print(emp3)

 

emp = dict(name="Tom", age=20, department="技术部", salary=8900.00)
book={\'title\': \'python入门经典\', \'author\': \'优品课堂\', \'price\': 59.00, \'publisher\': {\'title\': \'清华大学出版社\', \'address\': \'北京\'}}

print(\'name\' in emp)
print(\'price\' in book)
print(book[\'title\'])  # 可以通过键名访问
print(book[\'publisher\'][\'address\'])
print(book.get(\'title\'))  # 可以通过.get方法访问字典表
print(book.get(\'Title\'))  # 如果木有对应键,则返回None
print(book.get(\'Title\', \'未找到\'))  # 可以规定返回的值代替None
print(book.keys())  # 可以用.keys方法返回所有的键
keys = book.keys()
print(type(keys))  # 得到的是一个视图
keys = list(keys)
print(type(keys))
for key in book.keys():
    print(key)
print(book.values())
for V in book.values():
    print(V)
values = list(book.values())
print(values)
print(type(values))
print(book.items())  # .tiems得到所有的项,得到的是视图
items = list(book.items())
print(items)
for (k, v) in book.items():
    print(\'{}-->{}\'.format(k, v))
print(len(book.keys()))
print(len(book.values()))

 

 

coures = {\'title\': \'python零基础入门精讲\', \'lecturer\': \'Eason\', \'org\': \'腾讯课堂\'}
c = coures.copy()
print(c)
print(c.clear())
coures[\'lecturer\'] = \'Arthur.Wang\'
print(coures)
c1 = {\'price\': 19.00}
coures.update(c1)  # 用.update更新内容,增加/合并新的内容
print(coures)
del c1[\'price\']
print(c1)
c = coures
print(c.pop(\'price\'))
title = c.pop(\'title\')
print(title)
print(c)
print(c.pop(\'Org\', \'未找到\'))
print(c.popitem())
print(c)


def say_Hello():
    print("hello world")


print(say_Hello())
person = {\'name\': "Tom", "hello": say_Hello}
print(person[\'name\'])
print(person.get(\'name\'))
print(person[\'hello\'])
print(person[\'hello\']())
print(person.get(\'hello\')())

 

以上是关于dict字典的主要内容,如果未能解决你的问题,请参考以下文章

python-列表list- 元组(tuple)- 集合(set)-字典(dict)-实例代码

Python字典(dict)的操作方法汇总(约18种操作方法),并附示例代码

dict字典的用法

Python - 字典(dict)删除元素

Python - 字典(dict)删除元素

Python - 字典(dict)删除元素