Python学习笔记:字典(dict)有关内容

字典是Python中唯一的映射类型。映射类型对象里哈希值(键:key),和指向的对象(值:value),是一对多的关系,也就是

字典的元素分为两个部分,分别是键和值,一个键对应一个值,键不能够重复,值可以重复。

1.创建字典。

(1).字典是用大括号({})来包含元素的,基本创建就是直接赋值,键不能是元组或者列表,但是值可以是。

>>> D = {'a':1,'b':2,'c':3}<span style="white-space:pre">	</span>
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D = {'a':(1,2,3),'b':[1,2,3]}<span style="white-space:pre">	</span>#值为元组、列表
>>> D
{'a': (1, 2, 3), 'b': [1, 2, 3]}
>>> D = {[1,2]:1}<span style="white-space:pre">			</span>#键为列表,异常
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module><span style="white-space:pre">	</span>
    D = {[1,2]:1}
TypeError: unhashable type: 'list'

(2).可以用dict() 函数来创建,函数中传入一个元组(或者列表),元组(或者列表)里面包含多个有着对应关系的元组(或者列表),函数就会自动创建成字典类型。

(格式:dict()  ()里面只要是能够表达对应关系的序列都可以)

>>> D = dict((['a',1],['b',2]))<span style="white-space:pre">	</span>#用元组,元组里面用列表来表达对应关系
>>> D
{'a': 1, 'b': 2}
>>> D = dict([('a',1),('b',2)])
>>> D
{'a': 1, 'b': 2}
>>> type(D)
<class 'dict'>

(3)可以用fromkeys() 函数来创建,函数里面两部分内容,一是键,二是值,键可以用字符串、元组、列表等包含起来,值只能是一个值,然后函数

会把这个值赋给所有的键,值不存在默认为None。(格式:{}.fromkeys(keys,value)  keys用序列包含起来,value 直接写上去就好)

>>> D = {}.fromkeys(('a','b'),2)<span style="white-space:pre">	</span>#元组包含键
>>> D
{'a': 2, 'b': 2}
>>> D = {}.fromkeys(['a','b'],1)<span style="white-space:pre">	</span>#列表包含键
>>> D
{'a': 1, 'b': 1}
>>> D = {}.fromkeys('abc',1)<span style="white-space:pre">		</span>#字符串包含键
>>> D
{'a': 1, 'b': 1, 'c': 1}
>>> D = {}.fromkeys('a')<span style="white-space:pre">		</span>#值默认为None
>>> D
{'a': None}

2.访问字典。

因为字典是映射关系,所以不存在索引值,想要访问的话只能够通过键来实现,通过键来找到键所对应的值,不能通过值找键,就是一对一的格式。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D['a']
1
>>> D['b']
2
>>> D['c']
3

有个比较容易混乱的,下面看起来像是用索引值来访问了,但是却不是这样的,此时1,2,3代表的是键!!!

>>> D = {1:'a',2:'b',3:'c'}
>>> D
{1: 'a', 2: 'b', 3: 'c'}
>>> D[1]
'a'
>>> D[2]
'b'
>>> D[3]
'c'

3.删除字典。

单个删除字典元素。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> del D['a']
>>> D
{'b': 2, 'c': 3}

整个删除字典。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> del D
>>> D
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    D
NameError: name 'D' is not defined

清空字典的内容,让字典成为空字典。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.clear()
>>> D
{}

4.更新字典。

字典是可改变的,就如列表一样。

改变字典的值。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D['a']
1
>>> D['a'] = 4
>>> D
{'a': 4, 'b': 2, 'c': 3}

如果改变字典的值时,该键不存在就会在字典中新加入该键和值。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D['d'] = 4
>>> D
{'d': 4, 'a': 1, 'b': 2, 'c': 3}
>>> D['e'] = 0
>>> D
{'d': 4, 'a': 1, 'e': 0, 'b': 2, 'c': 3}

5.有关函数。

len()

计算字典 键-值 个数。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> len(D)
3

get()

get() 函数对字典dict中的键key,返回它所对应的值value,如果该键不存在字典中,则返回default的值,default默认为None(格式:dict.get(key,default=None) )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.get('a')
1
>>> D.get('e')
>>> D.get('e',10)
10
>>> D

items()

items() 函数返回一个包含字典中键、值对元组的列表。(格式:dict.items() )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.items()
dict_items([('a', 1), ('b', 2), ('c', 3)])

keys()

keys() 函数返回一个包含字典中键的列表。(格式:dict.keys() )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.keys()
dict_keys(['a', 'b', 'c'])

values()

values() 函数返回一个包含字典中所有值的列表。(格式:dict.values() )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.values()
dict_values([1, 2, 3])

pop()

pop() 函数删除字典中key以及对应的值,并返回,如果key不存在则返回default的值,如果default没指定值,则会异常。(格式:dict.pop(key,default) )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.pop('a')
1
>>> D
{'b': 2, 'c': 3}
>>> D.pop('e',1)
1
>>> D.pop('f')
Traceback (most recent call last):
  File "<pyshell#116>", line 1, in <module>
    D.pop('f')
KeyError: 'f'

popitem()

popitem() 函数随机删除并返回字典中一对键值。(格式:dict.popitems() )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.popitem()
('a', 1)

setdefault()

setdefault() 函数查找字典dict中的键key,返回它所对应的值value,如果该键不存在字典中,则返回default的值并且在字典中新增该键值,default默认为None。

(格式:dict.setdefault(key,default=None) )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.setdefault('a')
1
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.setdefault('e')
>>> D
{'a': 1, 'e': None, 'b': 2, 'c': 3}
>>> D.setdefault('f',5)
5

update()

update() 函数将dict2的键值添加到原字典dict 中,如果有相同的键,则以dict2的为准。(格式:dict.update(dict2) )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D1 = {'a':4,'e':5}
>>> D1
{'a': 4, 'e': 5}
>>> D.update(D1)
>>> D
{'a': 4, 'e': 5, 'b': 2, 'c': 3}

copy()

copy() 函数复制dict的内容。(格式:dict.copy() )

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D1 = D.copy()
>>> D1
{'a': 1, 'b': 2, 'c': 3}
时间: 2024-09-30 07:11:12

Python学习笔记:字典(dict)有关内容的相关文章

Python学习笔记——字典

1.创建字典和给字典赋值,可以使用工厂方法dict()来创建字典,也可以使用fromkeys()来创建一个元素具有相同值的字典 >>> dict = {'name':'XiaoMing','age':20} >>> dict {'age': 20, 'name': 'XiaoMing'} >>> dict2 = dict((['x',1],['y',2])) >>> dict2 {'y': 2, 'x': 1} >>>

Python学习笔记之dict、set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长. 如

Python学习笔记-字典(上)

字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成. 建立方法: 1.直接输入键值建立 items ={'apple':'$5','pear':'$4','banana':'6'} print items['apple'] $5 注意一定使用{ }, 否则成了列表. 2. 通过dict函数从列表建立 items =[['apple','$5'],['pear','$4'],['banana','6']] print items print items[0:1] ditems 

python学习笔记字典(四)

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 创建字典:  = {::} sh

Python学习笔记-字典

字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数来创建字典. len(d)d中项的数量.d[k]返回关联到键的值,d[k] = v给键赋值,del d[k]删除键k,k in d是否含有键k. 键类型,自动添加,成员资格. 字典的格式化字符串. 方法: 1.clear清除字典中所有的项.在原地操作. 2.copy浅复制,改变值对原数据无影响,删除

Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法. clear 清空字典中的所有项. 我们可以把空字典赋给某一字典来清空它当中的项.也可以使用clear方法彻底清空字典. x= {} y=x x['age']='25' x['gender']='male' print x  x.clear() print x  print y  {'gender': 'male', 'age': '25'} {} {} 如果将 x.clear 改为 x={},则结果变为 {'gender': 'male', 'age': '2

Python学习笔记 set&amp;&amp;dict

dict 是个好东西啊,这个东东是类似于c++里面的map.其形式为 dict={key:value,key:value....} 这个东西好玩的地方主要在于 1.他的key值查找采用的是哈希算法,速度比较快 2.key值得类型可以不同,但是其key值为不可变对象,例如字符串,即便key值为数字那也是数字常量 3.value值类型也可以不同. 4.可以按key值直接进行添加,如d[1]=123(假设1之前并不是其key值,如果是其key值那么,则是修改value) 5.可以按key值直接进行查找

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

python学习笔记(五)之字典2

python学习笔记(五)之字典2编程实战中经常用到实例1:copy >> ad = {"name":"wtf","hig":"180"}>> bd = ad>> bd{'name': 'wtf', 'hig': '180'}>> id (ad)4539954352>> id (bd)4539954352说明:一个对象贴上两个标签,使用赋值,实现了所谓的"假