博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础-- 05 Dict&Set
阅读量:5239 次
发布时间:2019-06-14

本文共 2164 字,大约阅读时间需要 7 分钟。

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

1.6有序字典

 

from collections import OrderedDictfavorite_languages = OrderedDict()favorite_languages['jen'] = 'python'favorite_languages['sarah'] = 'c'favorite_languages['edward'] = 'ruby'favorite_languages['phil'] = 'python'for name, language in favorite_languages.items():    print(name.title() + "'s favorite language is " + language.title() + ".")

 

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)  # 注:删除如果元素不存在,则会报错。

转载于:https://www.cnblogs.com/yc913344706/p/7748561.html

你可能感兴趣的文章
数据库的标识符可以有多长
查看>>
新手村之循环!循环!循环!
查看>>
在创业公司上班的感受
查看>>
Shell脚本
查看>>
masm32V11配置
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
通过Python、BeautifulSoup爬取Gitee热门开源项目
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
android代码控制seekbar的样式
查看>>
servlet
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
linux下安装python环境
查看>>
pdnovel 看书 读书 听书
查看>>
oracle for loop 代替cursor (转载)
查看>>
Linked List Cycle II
查看>>