滴滴滴!!!第四课知识来啦

这篇博客详细介绍了Python中的元组和字典。元组是不可变序列,不可修改元素,具有速度快、安全性的优点,可用于字典键和集合元素。介绍了元组的创建、删除、与列表的区别以及序列解包。字典是无序可变序列,讲解了字典的创建、删除、元素读取和修改方法,包括get、items、keys、values等方法。
摘要由CSDN通过智能技术生成

目录


在这里插入图片描述

一、元组

  • 元组属于不可变序列,一旦创建用任何方法都不可以修改其元素。
  • 元组的定义:定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中。

1.元组创建与删除

(1)使用“=”将一个元组赋值给变量

例如:

>>>a _tuple = ('a','b','c')
>>>a_tuple
('a','b','c')
>>>a = (3)  
>>>a
3       #不是元组
>>>a = (3,)    #当元组包含一个元素时,最后必须多写个逗号
>>>a
(3,)
>>>x = ()  #空元祖

(2)使用tuple函数将其他序列转换为元组

例如:

>>> tuple('abcdef')  #将字符串转换为元组
('a','b','c','d','e','f')
>>> aList
[-1,-4,6]
>>>tuple(aList)   #将列表转换为元组
(-1,-4,6)

(3) 使用del可以删除元租对象,不能删除元组中的元素

2.元组与列表

(1)区别

  • 元组一旦定义就不允许更改
  • 元组没有append()、extend()、insert()等方法,无法向元素中添加元素
  • 元组没有remove()、pop()方法,无法对元组元素进行del操作,不能从元祖中删除元素
  • 元组支持切片操作,但只能通过切片来访问元素
  • 从效果上看,tuple()冻结列表,而list()融化元组

(2)元组的优点

  • 元组的速度比列表更快
  • 更加安全
  • 元组可用作字典的“键”,也可以作为集合的元素。

3.序列解包

(1)使用序列解包功能对多个变量同时的赋值

例如:

>>>x,y,z = 1,2,3
>>>v_tuple = (False,3.5,'exp')
>>>(x,y,z) =v_tuple

(2)序列解包用于列表和字典

  • 对字典使用时,默认是对字典的“值”操作。如果需要对“键:值对”操作,需要使用字典的item()方法说明,如果需要对字典的“值”操作,则需要使用字典的values()方法明确指定。
    例如:
>>>.a =[1,2,3]
b,c,d = a
>>>s{'a':1,'b':2,'c':3}
>>>b,c,d = s,items()
>>>b,c,d = s
>>>b,c,d = s.values()
>>>a,b = b,a #交换两个变量的值

(3)使用序列解包遍历enumerate对象

>>>x = ['a','b','c']
>>>for i,v in enumerate(x):
print('The value on position {0} is {1}'.format(i,v))
 The value on position 0 is a
 The value on position 1 is b
 The value on position 2 is c

4.生成器推导式

  • 生成器推导式的结果是一个生成器对象。
  • 生成器对象具有惰性求值的特点。
  • 不管用哪种方法访问生成器对象,都无法再次访问已访问过的元素。

(1)使用生成器对象_next_()方法进行遍历

>>>g = ((i+2)**2 for i in range(10)) #创建生成器对象
>>>g
<generator object <genexpr> at 0x0000000003095200>
>>>tuple(g)  #将生成器对象转换为元组
(4,9,16,25,36,49,64,81,100,121)
>>>list(g)  #生成器已经遍历结束,没有元素了
[]
>>>g = ((i+2)**2 for i in range(10)) #重新创建生成器对象
>>>g._next_() #使用生成器对象的_next_()方法获取元素
4
>>>g. _next_()  #获取下一个元素
9

(2)使用for循环直接迭代生成器对象中的元素

>>>g = ((i+2)**2 for i in range(10))
>>>for item in g:    #使用循环直接遍历生成器对象中的元素
print(item,end=' ')
4 9 16 25 36 49 64 81 100 121

二、字典

  • 字典是无序、可变序列
  • 定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{}”中
  • 字典中的键可以为任意不可变数据

1.字典的创建与删除

(1)使用=将一个字典赋值给一个变量

>>>a_dict = {'server ': 'db.diveintopython3.org'}
>>>a_dict
 {'server ': 'db.diveintopython3.org'}
 >>>x = {}  #空字典
 >>>x
 {}

(2)使用dict利用已有数据创建字典

>>>keys = ['a','b','c','d']
>>>values = [1,2,3,4]
>>>dictionary = dict(zip(keys,values))
>>>dictionary
{'a':1,'c':3,'b':2,'d':4}
>>>x = dict() #空字典
>>>x
{}

(3)使用dic根据给定的键、值创建字典

>>>d = dict(name='Dong',age=37)
>>>d
{'age':37,'name':'Dong'}

(4)以给定内容为键,创建值为空的字典

>>>adict = dict.fromkeys(['name','age','sex'])
>>>adict
{name':None,'age':None,'sex':None}

2.字典元素的读取

(1)以键作为下标读取字典元素,若键不存在则抛出异常

>>>aDict = {'name':'Dong'}
>>>aDict['name']
>>>'Dong'

(2)使用字典对象的get方法获取指定键对应的值,并且可以在键不存在的时候返回指定值。

>>> print(aDict.get('address'))
None
>>> print(aDict.get('address', 'SDIBT'))
SDIBT
>>> aDict['score'] = aDict.get('score',[])
>>> aDict['score'].append(98)
>>> aDict['score'].append(97)
>>> aDict
{'age': 37, 'score': [98, 97], 'name': 'Dong', 'sex': 'male'}

(3)使用字典对象的items()方法可以返回字典的键、值对

(4)使用字典对象的keys()方法可以返回字典的键

(5)使用字典对象的values()方法可以返回字典的值

>>> for key, value in aDict.items():       #序列解包用法
      print(key, value)
age 37
name Dong
sex male

>>> aDict.keys()                           #返回所有键
dict_keys(['name', 'sex', 'age'])

>>> aDict.values()                         #返回所有值
dict_values(['Dong', 'male', 37])

3.字典元素的添加与修改

(1)使用字典对象的update()方法将另一个字典的键、值对添加到当前字典对象。

>>> aDict
{'age': 37, 'score': [98, 97], 'name': 'Dong', 'sex': 'male'}
>>> aDict.items()
dict_items([('age', 37), ('score', [98, 97]), ('name', 'Dong'), ('sex', 'male')])
>>> aDict.update({'a':'a','b':'b'})
>>> aDict
{'a': 'a', 'score': [98, 97], 'name': 'Dong', 'age': 37, 'b': 'b', 'sex': 'male'}

(2) 使用del删除字典中指定键的元素

>>>dic = {' sc':'cd','beijing':'beijing'}
del dic['beijing']
>>>dic
{'sc':'cd'}

(3) 使用字典对象的clear()方法来删除字典中所有元素

>>>dic.clear()
>>>dic
{}

(4) 使用字典对象的pop()方法删除并返回指定键的元素

>>>dic = {' sc':'cd','beijing':'beijing'}
>>>dic.pop('sc')
'cd'
>>>dic
{'beijing':'beijing'}

(5) 使用字典对象的popitem()方法删除并返回字典中的一个元素

>>>dic = {' sc':'cd','beijing':'beijing'}
>>>dic.popitem()
('beijing','beijing')

今日份学习结束啦~~~~~
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值