python元组、字典、集合基础知识笔记_第1页
python元组、字典、集合基础知识笔记_第2页
python元组、字典、集合基础知识笔记_第3页
python元组、字典、集合基础知识笔记_第4页
python元组、字典、集合基础知识笔记_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元

组使用小括号,列表使用方括号。

>>>aTuple=('et',99.9)>>>aTuple

('et',77,99.9)

一、访问元组

二、修改元组

说明:python中不允许修改元组的数据,包括不能删除其中的元

素。

三、count,index

index和count与字符串和列表中的用法相同

>>>a=('a','b','c','a','b')>>>a.index('a',1,3)

#注意是左闭右开区间

Traceback(mostrecentcalllast):

File"<stdin>'\linein<module>

ValueError:tuple.index(x):xnotintuple>>>

a.index('a',1,4)3>>>a.count('b')2>>>a.count('d')0

四、定义只有一个数据的元组

定义只有一个元素的元组,需要在唯一的元素后写一个逗号

>>>a=(11)>>>all>>>type(a)

int>>>a=(11,)#只有一个元素的元组,必须要在元素后写

一个逗号>>>a

type(a)

tuple

五、交换两个变量的值

#第1种方式,使用中间变量

a=4

b=5

c=0

c=a

a=b

b=c

print(a)

print(b)

#第2种方式,直接交换。

a,b=4,5

a,b=b>a

print(a)

print(b)

字典介绍

一、列表的缺点

当存储的数据要动态添加、删除的时候,我们一般使用列表,但是

列表有时会遇到一些麻烦。

#定义一个列表保存,姓名、性别、职业

nameList=['xiaoZhang','男'木匠'];

#当修改职业的时候,需要记忆元素的下标

nameList[2]=1铁匠,

#如果列表的顺序发生了变化,添加年龄

nameList=['xiaoWang''少,',,铁匠']

#此时就需要记忆新的下标,才能完成名字的修改

nampLi[3]='xiaoxiaoWang'

有没有方法,既能存储多个数据,还能在访问元素的很方便就能够

定位到需要的那个元素呢?

答:

字典

二、字典的使用

定义字典的格式:{键1:值1,键2:值2,键3:值3,・・.,键n:值n}

变量inf。为字典类型:

info={‘name':‘班长'id':100,'sex':'f'address':'

地球亚洲中国上海‘}

info['name']#字典使用键来获取对应的值

说明:

字典和列表一样,也能够存储多个数据

列表中找某个元素时,是根据下标进行的;字典中找某个元素

时,是根据‘名字‘(就是冒号:前面的那个值,例如上面代码中的

'name'、'id'、'sex')

字典的每个元素由2部分组成,键:值。例如Ihame':'班长

'name'为键,'班长为值

键可以使用数字、布尔值、布尔值、元组等不可变数据类型,

但是一般习惯使用字符串

每个字典里的key都是唯一的,如果出现了多个key,后面的

value会覆盖前一个key对应的value.

在习惯上:

列表更适合保存多个商品、多个姓名、多个时间,这样的相似

数据;

字典更适合保存一个商品的不同信息、一个人的不同信息,这

样的不同数据。

字典的增删改查

一、查看元素

除了使用key查找数据,还可以使用get来获取数据

info={'name':'班长'Jage':18}

print(info['age'])#获取年龄#print(info['sex'])#获

取不存在的key,会发生异常

print(info.get(*sex1))#获取不存在的key,获取到空的内

容,不会出现异常

print(info.get(*sex','男'))#获取不存在的key,可以

提供一个默认值。

注意,获取默认值不会修改字典内容。

二、修改元素

字典的每个元素中的数据是可以修改的,只要通过key找到,即可

修改

demo:

info={'name':'班长1'id':100}

print「修改之前的字典为%s:'%info)

infofid*]=200#为一存在的键赋侑就足修改

print「修改之后的字典为%s:‘%info)

结果:

修改之前的字典为{'namd:‘班长二'id':100)

修改之后的字典为{‘name':'班长'id':200)

三、添加元素

如果在使用变量名「键」二数据时,这个,键”在字典中,不存在,

那么就会新增这个元素

demo:添加新的元素

info={'name':,班长’}

print('添加之前的字典为:%s,%info)

info['id']=100#为不存在的键赋值就是添加元素

print('添加之后的字典为:%s'%info)

结果:

添加之前的字典为:{'name,:‘班长〉

添加之后的字典为:{'name,:‘班长'id':100}

四、删除元素

对字典进行删除操作,有一下几种:

del

clear()

demo:del删除指定的元素

info={'name':‘班长','id':100}

print('删除前,%s'%info)

delinfo['name']#del可以通过键删除字典里的指定元索

print('删除后,%s'%info)

结果

删除前,{‘name':'班长['id':100}

删除后,{,id,:100)

del删除整个字典

info={'name':'monitor','id*:100}

print(,删除前,%s'%info)

delinfo#del也可以直接删除变量

print(,删除后,%s'%info)

结果

删除前,{‘name':'monitor\'id':100)

Traceback(mostrecentcalllast):

File"<stdin>'\line1,in<module>

NameError:name'info'isnotdefined

clear清空整个字典

info={'name':'monitor','id':100}

print('清空前,%s'%info)

info.clear()

print('清空后,%s'%info)

结果

清空前,{‘name':'monitor*,'id':100)

清空后,{}

字典遍历

<1>遍历字典的key(键)

<2>遍历字典的value(值)

<3>遍历字典的项(元素)

<4>遍历字典的key-value(键值对)

练习

1.有一个列表persons,保存的数据都是字典

persons=[{'name':'zhangsan''age':18},{'name':

'lisi','age':20},{'name':'wangwu''age':

19},{'name':'jerry','age':21)]

要求让用户输入一个姓名,如果这个姓名在列表里存在,就提示用

户名称已存在,添加失败:如果这个姓名在列表里不存在,提示让

用户输入年龄,并将月户输入的姓名和年龄添加到这个列表里。

1.有一个字典dictl={"a":100,"b":200,"c":300},使用代码,将

字典的key和value互换,变成{100:“a”,200:”b”,300:”c}

参考答案:(使用字典推导式)

dictl={"a":100,"b":200,"c":300)

dict2={v:kfork,vindictl.items())

print(dict2)

set的使用

集合(set)是一个无序的不重复元素序列,可以使用大括号{}或

者set()函数创建集合。

注意:创建一个空集合必须用set()而不是{},因为{}是用来

创建一个空字典。

创建格式:

parame={value01,value02,.,,}

或者

set(value)

添加元素

语法格式如下:

s.add(x)

将元素x添加到集合s中,如果元素己存在,则不进行任何操作。

>>>thisset=set(("Google""Runoob"?"Taobao"))>>>

thisset.add("Facebook")>>>print(thisset)

{'Taobao','Facebook'?'Google''Runoob'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典

等,语法格式如下:

s.update(x)

x可以有多个,用逗号分开。

>>>thisset=set(("Google""Runoob","Taobao"))>>>

thisset.update({1,3})>>>print(thisset)

{1,3,'Google','Taobao','Runoob'}>>>

thisset.update([,4],[,6])>>>print(thisset)

{1,3,4,5,6j'Google''Taobao','Runoob'}

移除元素

语法格式如下:

s.remove(x)

将元素x从集合s中移除,如果元素不存在,则会发生错误。

>>>thisset=set(("Google"^"Runoob","Taobao"))>>>

thisset.remove("Taobao")>>>print(thisset)

{'Google''Runoob')>>>thisset.remove("Facebook")

不存在会发生错误

Traceback(mostrecentcalllast):

File"<stdin>"line1,in<module>

KeyError:'Facebook'

>>>

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不

会发生错误。格式如下所示:

s.discard(x)

>>>thisset=set(("Google","Runoob","Taobao"))>>>

thisset.discard("Facebook")#不存在不会发生铝误>>>

print(thisset)

{'Taobao','Google','Runoob'}

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop()

thisset=set(("Google","Runoob","Taobao",

"Facebook"))

x=thisset.pop()

print(x)

print(thisset)

set常见方法列表

方法描述

add()为集合添加元素

clear()移除集合中的所有元素

0拷贝一个集合

pop()随机移除元素

remove()移除指定元素

union返回两个集合的并集

update()给集合添加元素

difference()返回多个集合的差集

difference_update()移除集合中的元素,该元素在指定的集合也存二

discard()删除集合中指定的元素

intersection()返回集合的交集

intersection_update()删除集合中的元素,该元素在指定的集合中不:

判断两个集合是否包含相同的元素,如果没有:

isdisjoint()

True,否则返回False0

issubset()判断指定集合是否为该方法参数集合的子集。

issuperset()判断该方法的参数集合是否为指定集合的子集

symmetric_difference()返回两个集合中不重复的兀素集合。

移除当前集合中在另外一个指定集合相同的元:

symmetric_difference_update()

另外一个指定集合中不同的元素插入到当前集■

执行字符串

使用Python内置的eval函数,可以执行字符串里的Python代码。

使用这种方式,可以将字符串转换成为其他类型的数据。

x='1+1'

print(eval(x))#2

print(type(eval(x)))#<class'int'>

y='{"name":"zhangsan","age":18}'

print(eval(y))

print(type(eval(y)))#<class'diet'>

print(eval('1>2'))#False

eval('input(“请输入您的姓名

转换成为字符串

JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数

据交换格式,它基于ECMAScript的一个子集,采用完全独立于编

程语言的文本格式来存储和表示数据。JSON本质是一个字符串

JSON的功能强大,使用场景也非常的广,目前我们只介绍如何使

用Python的内置JSON模块,实现字典、列表或者元组与字符串

之间的相互转换。

使用json的dumps方法,可以将字典、列表或者元组转换成为字

符串。

importjson

person={'name':'zhangsan','age':18}

x=json.dumps(person)

print(x)#{"name":"zhangsan","age":18)

print(type(x))#<class'str'>

nums=[1,9,0,4,:

y=json.dumps(nums)

print(y)#[1,9,0,4,7]

print(type(y))#<class'str'>

words=('hello','good','yes')

z=json.dumps(words)

print(z)#["hello","good","yes"]

print(type(z))#<class'str'>

使用json的loads方法,可以将格式正确的字符串转换成为字典、

列表。

x='("name":"zhangsan","age":18},

person=json.loads(x)

print(person)#{'name':'zhangsan''age':18)

print(type(person))#<class'diet'>

y='[1,9,0,4,7],

nums=json.loads(y)

print(nums)#[1,9,0,4,7]

print(type(nums))#<class'list'>

字符串、列表、元组、字典和集合,它们有很多相同点,都是由多

个元素组合成的一个可迭代对象,它们都有一些可以共同使用的方

法。

算数运算符

在Python里,常见的算数运算符:,有一些可以使用于可送代对象,

它们执行的结果也稍有区别。

运算Python表达

结果描述支持的数据

符式

+[1,2]+[3,4][1,2,3,4]合并字符串、列表、

(1,2,3,4)-

-{1,4}集合求差集集合

{2,3}

['Hi!','Hi!','Hif,

*['Hi!']*4复制字符串、列表、

'Hi!']

字符串、列表、

in3in(1,2,3)True元素是否存在

字典

4notin(1,2,元素是否不存字符串、列表、

notinTrue

3)在字典

加法运算符可以用于字符串、列表和元组,用来拼接多个可迭代对

象,不能用于字典和笑合(思考:为什么字典和集合不能使用)。

>>>"hello"+"world"'helloworld'>»[1,2]+[3,4]

[1,2,3,4]»>('a','b')+('c','d')

a','b','c','d')

减法只能用于集合里,用来求两个集合的差集。

»>{1,6,9,10,12,3}-{4,8,2,1,3)

{%10,12,6)

*

加法运算符可以用于字符串、列表和元组,用来将可迭代对象重复

多次,同样不能用于字典和集合。

>>>'ab'*4'ababab'>>>口,2]*4

[1,2,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论