开始Python学习第七课(python元组,字典,集合)

从基础开始Python学习(4.27)第七课

python中元组,字典和集合操作

一. 元组

1. 元组(tuple)表示及使用

1.1 元组的表示

元组表现形式tuple 元组是⼀个不可变序列(⼀般当我们希望数据不改变时,我们使⽤元组,其他 情况下基本都⽤列表)
使⽤ () 创建元素,元组不是空元组⾄少有⼀个 逗号(,) 当元组不是空元组时括号可以省略,元组解包指将元组当中的每⼀个元素都赋值给⼀个变量
(1)创建空元组

a = (,)

(2)元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

a = (50)
print(a)
type(a)     # 不加逗号,类型为整型
b = (50,)
print(b)
type(b)     # 加上逗号,类型为元组

在这里插入图片描述

1.2 元组实例

(1)元组的访问
元组可以与列表,字符串一样使用下标索引来访问元组中的值

a = ('red', 'green', 'blue', 'yellow', 'white', 'black','key')
#使用索引对列表进行访问
print(a[0],a[1],a[2]) #使用正向索引值可依次访问列表的值
print(a[-1],a[-2],a[-3]) #使用反向索引值可依次访问列表的值
#使用索引对列表进行截取访问
print(a[0:4]) #使用正向切片索引值访问列表的值
print(a[0:6:2]) #使用正向切片索引值,设定取值长度访问列表的值
print(a[-4:-1]) #使用反向切片索引值访问列表的值
print(a[-1:-4:-1]) #使用反向切片索引值,设定反向取值可访问列表的值
#使用索引对列表进行访问后组合
print(a[0]+a[5]) #对其取值进行组合
print(type(a))

在这里插入图片描述
(2)元组的增加与修改
元组中的元素值是不允许修改的,即无法在原元组进行增加,删除和修改

a = (12, 34.56)
# 以下修改元组元素操作是非法的。
 a[0] = 100

在这里插入图片描述
(2)元组的删除
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

a = ('Google', 'Runoob', 1997, 2000)
print(a)
del a
print(a)

在这里插入图片描述

1.3 元组的其它使用方法
函数&方法描述
len(tuple)列出元组内的个数
(1, 2, 3) + (4, 5, 6)可进行拼接成一个新的元组(1, 2, 3, 4, 5, 6)
(‘Hi!’,) * 4(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)
in判断指定元素是否在元组当中
not in判断指定元素是否不在列表当中
for x in (1, 2, 3): print (x,)循环遍历元组中的值1 2 3
#创建一个新的元组,空的元组
a = tuple()
b = ()
c = (1,2,3,4,5)
print(len(c)) #元组值的个数
d = 1 in c #判断是否在元组中
print(d)
d = 1 not in c
print(d)
for i in c: #循环遍历元组中的值
    print(i,end='\t')

在这里插入图片描述

二. 字典

1. 字典(dictionary)表示及使用

1.1 字典的表示

字典是另一种可变序列,且可存储任意类型对象。列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反,字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,键必须是唯一的,但值则不必,值可以取任何数据类型,但键必须是不可变的,如字符串,数字,元组等不可变序,字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的。

dict1 = {key1 : value1, key2 : value2, key3 : value3 }
dict2 = {‘一班’:47,‘二班’:50,‘三班’:47,‘四班’:55}

#创建一个新的字典,空的字典
a = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#空的字典可使用函数,或直接创建
b = dict()
c = {}
print(type(a),type(b),type(c),end='\t')
print(a['Name'])
b = {1:'sdgydg','hdhhuid':[1,23,4],(1,2,3):{1:'juh'}}
print(b[1])
print(b['hdhhuid'][1])

在这里插入图片描述

1.2 字典实例

(1)字典的访问
把相应的键放入到方括号中

#创建一个新的字典,空的字典
b = {1:'sdgydg','hdhhuid':[1,23,4],(1,2,3):{1:'juh'}}
print(b[1])
print(b['hdhhuid'][1])
a = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(a['Name'])

在这里插入图片描述

(2)字典的增加与修改
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例

a = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#将原有键的值替换
a['Name'] = 123456
print(a)
#添加新的键的值
a[(1,2,3)] = '一班'
print(a)

在这里插入图片描述

(3)字典的删除

a = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#将使用函数删除字典
del a['Name']
print(a)
print('------------------')
#使用方法对字典删除
b = a.popitem() #删除字典最后的⼀个key-value,它会将删除的key-value作为返回值返回
print(b)
print(a)
print('------------------')
c = a.pop('Abe','False') #根据key删除⾃定中的value,第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
print(c)
print(a)

在这里插入图片描述

1.3 字典的其它使用方法
函数&方法描述
len(tuple)列出字典内的个数
str(dict))输出字典,以可打印的字符串表示。
in判断指定元素是否在元组当中
not in判断指定元素是否不在列表当中
dict.clear()删除字典中所有值
dict.fromkeys(seq,value)创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
fdict.items()以列表返回可遍历的(键, 值) 元组数组
dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2)把字典dict2的键/值对更新到dict里
dict.values()返回一个迭代器,可以使用 list() 来转换为列表
a = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
b = [1,2,3,]
c = ['w','x','z']
d = {}
print(type(a))
print('--------')
print(str(a))#输出字典,以可打印的字符串表示
print('--------')
d = dict.fromkeys(b,c)#dict.fromkeys(seq,value)|创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
print(d)
print('--------')
print(a.items())#以列表返回可遍历的(,) 元组数组  |
print('--------')
a.update(d)#把字典d的键/值对更新到a里|
print(a)
print('--------')
f = list(a.values())
print(f)
f = list(a.keys())
print(f)

在这里插入图片描述

三. 集合

1. 集合(set)表示及使用

1.1 集合的表示

集合(set)是一个无序的不重复元素序列。
集合表现形式set 集合和列表⾮常相似,不同点是集合只能存储不可变对象 集合中存储的对象是⽆序的 集合不能出现重复元素
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

set1 = {,}

#使用函数或直接创建集合
a = set()
b = {0}
print(type(a),type(b))
c = {'Sex', 'female', 'Age', 7, 'Name', 'Zara'}
print(type(a),type(b),type(c))

在这里插入图片描述

1.2 集合实例

(1)集合的访问

#集合是无序的组合,无法使用序列号进行访问
c = {'Sex', 'female', 'Age', 7, 'Name', 'Zara'}
print(c[0])

在这里插入图片描述

(2)集合的增加
使用.addhe .update方法可对集合进行添加,添加的元素重新排布

a= {"Google", "Runoob", "Taobao"}
a.add("Facebook")
print(a)
a.update({1,3})
print(a)

在这里插入图片描述

(3)集合的删除

#使用对象的方法进行添加
a= {"Google", "Runoob", "Taobao",1,3,"Facebook"}
a.remove("Google")#将元素从集合中移除,如果元素不存在,则会发生错误
print(a)
print('----------')
a.discard(3)#移除集合中的元素,且如果元素不存在,不会发生错误
print(a)
print('----------')
a.pop() #随删除集合中的一个元素
print(a)
print('----------')

在这里插入图片描述

1.3 集合的其它使用方法
函数&方法描述
len(tuple)列出字典内的个数
set.clear()删除字典中所有值
in判断指定元素是否在元组当中
not in判断指定元素是否不在列表当中
&交集运算
-差集运算
^亦或集
<=和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
>=检查⼀个集合是否是另⼀个集合的超集
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
issubset()判断指定集合是否为该方法参数集合的子集
issuperset()判断该方法的参数集合是否为指定集合的子集
difference()返回多个集合的差集
a = {"Google", "Runoob", "Taobao",1,3,"Facebook"}
b = {"Google", "Runoob", "Taobao"}
print(len(a),len(b))
print('------------------------------------------')
c = 1 in a
print(c)
print('------------------------------------------')
d = a & b
e = a ^ b
f = a - b
g = a | b
print(d,e,f,g)
print('------------------------------------------')
h = a > b
print(h)
print('------------------------------------------')
print(a.difference(b))
print('------------------------------------------')
print(a.issubset(b))

在这里插入图片描述

四. 作业

4.1 a = {“name”:“123”,“data”:{“result”:[{“src”:“python1”}, {“src”:“python2”},{“src”:“python3”}]}} 找到 python1/python2/python32
a = {"name":"123","data":{"result":[{"src":"python1"}, {"src":"python2"},{"src":"python3"}]}}
print(a["data"]["result"][0]["src"])
print(a["data"]["result"][1]["src"])
print(a["data"]["result"][2]["src"])

在这里插入图片描述

4.1 有如下值列表[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第⼀个key的值中,将小于66值保存至第二个key的值中。
a = [11,22,33,44,55,66,77,88,99,90]
b_max = []
c_min = []
dic = {}
for i in a:
    if i> 66:
        b_max.append(i)
    elif i<66:
        c_min.append(i)
dic['key1'] = b_max
dic['key2'] = c_min
print(dic)

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值