python基础-- 05 Dict&Set

Posted

tags:

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

1.字典dict

1.1字典定义

>>> d={‘Adam‘:95,‘Lisa‘:85,‘Bart‘:59}

1.2字典访问

1.2.1key方法访问

         dict[key]

>>> d[‘Adam‘]

95

         判断key是否在dict中--in(只能判断key)

>>> d

{‘Lisa‘: 85, ‘Adam‘: 95, ‘Bart‘: 59}

>>> ‘Paul‘ in d

False

>>> ‘Lisa‘ in d

True

>>> 85 in d

False

1.2.2get方法访问

         dict.get(key)

         dict本身提供的一个 get 方法,在Key不存在的时候,返回None

>>> d[‘Paul‘]

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

KeyError: ‘Paul‘

>>> d.get(‘Adam‘)

95

>>> d.get(‘Paul‘)

1.3字典特点

查找速度快,占用内存高

key值不可重复

key-value对没有顺序

作为key的对象类型必须为不可变的类型

       不可变的类型:字符串、浮点数、整数等

       可变的类型:list等

1.4字典更新

       dict[key]=value

       注:如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value

1.5字典遍历

1.5.1迭代dict的keys

for-in语句直接作用于dict时,拿到的是dict的key

>>> for key in d:

...    print "%s : %s" % (key,d[key])

...

Lisa : 85

Adam : 95

Bart : 59

1.5.2迭代dict的values

方法

dict.values()把dict的所有values取出来,转换为一个List

dict.itervalues()只是把dict的所有values取出来,并不转换为list,所以比dict.values()方法占用更少的内存

举例

>>> d.values()

[85, 95, 59]

>>> d.itervalues()

<dictionary-valueiterator object at 0x0000000002487F98>

>>> for i in d.itervalues():

...    print i

...

85

95

59

1.5.3迭代dict的keys和values

方法

dict.items() 把dict对象转换成了包含tuple的list

dict.iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple, 所以, iteritems() 不占用额外的内存

举例

>>> d.items()

[(‘Lisa‘, 85), (‘Adam‘, 95), (‘Bart‘, 59)]

>>> d.iteritems()

<dictionary-itemiterator object at 0x0000000002487F98>

>>> for key,value in d.iteritems():

...    print key,value

...

Lisa 85

Adam 95

Bart 59

2.集合set

2.1特点

set的元素没有重复

set存储的元素和dict的key类似,必须是不变对象

set的元素是无序的

2.2创建

调用 set() 并传入一个 list,list的元素将作为set的元素

>>> s=set([‘A‘,‘B‘,‘C‘])

2.3访问

由于set存储的是无序集合,所以我们没法通过索引来访问。

访问 set中的某个元素实际上就是判断一个元素是否在set中。

>>> ‘Bart‘ in s

False

2.4遍历

for-in遍历

2.5更新

由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:

一是把新的元素添加到set中,二是把已有元素从set中删除。

         添加:s.add(object)

         删除:s.remove(object)  # 注:删除如果元素不存在,则会报错。

以上是关于python基础-- 05 Dict&Set的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何禁用在属性字典中创建新键?

python学习第六天:python基础(dictset)

Python-Dict&Set类型

Python dict & set

Python学习笔记 set&&dict

Python list & dict & str