元组、集合、元素基础

本文介绍了Python中的不可变数据类型元组,包括创建、访问和不可变特性,并通过示例展示了元组的操作,如切片、元素访问。接着讨论了可变数据类型列表,讲解了列表的创建、访问、修改、增加、删除等操作。最后,文章还简要提及了字典的创建、访问、修改、删除等基本操作以及集合的特性与操作。
摘要由CSDN通过智能技术生成

第三次

元组
不可变数据类型,number,string
tuple 元组的数据类型
元组通过英文的小括号()标识,元组中的元素之间是通过英文的,小逗号隔开的
例子 tuple1=(元素1,元素2)

1、创建一个元组
tup1=(1,2,3)
print(tup1)
#2、创建一个空元祖
tup2=()
print(tup2,type(tup2))
#3、创建只有一个元素的元组,最后需要加一个英文的,小逗号去消除数学歧义
tup3=(1,) # 只有一个元素的元组
print(type(tup3),tup3) # 打印出元素以及元素的类型
#4 创建任意类型的元组
tup4=(1,2,3,‘maoshiba’,[1,2,3,4])
print(tup4)
#5、访问元组中的元素,可以通过切片的方法去访问,根据索引来确定
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成新的序列。
语法是:sname [start🔚step]
sname:表示序列的名称
start:表示切片开始的位置(包含该位置),如果不指定,则默认为0.
end:表示切片结束的位置(不包含该位置),如果不指定,则默认为序列的长度。
step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
print(tup4[1])
#6、去头去尾访问
print(tup4[1:-1])
#7、访问元组当中部分的元素
print(tup4[1:4])
#8、更新元素

tup4[3]=‘maoshi’# 不能通过它更新,元组是不可变数据类型

tup6=(‘maoshiba’)
tup5=tup4[0:3]+tup6+tup1[4:]
print(tup5)
9、复制元素
print(tup4*3)
10、元组还可以做判断
if ‘maoshiba’ in tup4:
print(‘cunzai’)
else:
print(‘bucunzai’)
11、删除元组中的元素
不可以删除元组里面的某个元素,只能通过拼接的方式去更新
注意以下是错误演示
tup=(1,2,3,4,5,)
del tup[0]
执行以上语句报错如下
del tup[0]
TypeError: ‘tuple’ object doesn’t support item deletion

删除整个元组是可以的
tupx=(1,2,3,4)
del tupx
12、元组常用的其他函数
创建一个元组,使用len()这个函数计算出元组中元素的个数
tupy=(1,2,3,45,67,9,12,2,236,34,[2],443,5)
print(‘元组中元素的数量是:’, len(tupy),‘个元素’)

可变数据类型
列表
什么是(列表):是一种有序集合,他可以随时添加和删除其中的元素
定义:通过[]表示,元素可以是任意类型,元素之间用英文逗号隔开
1、创建一个列表
list1=[1,2,3,4,5]
print(list1)
2、访问列表中元素的值
2.1访问第一个元素的值
print(list1[0])

2.2访问最后一个元素的值

print(list1[-1])
2.3访问部分元素的值
list2=list1[1:-1]
print(list2)
2.4访问超出了元素范围的值,list1中没有9个元素,此为索引越界了
print(list1[9])
IndexError: list index out of range
3、修改list1当中元素的值
list1[0]=0
print(list1)

4、增加元素
向list1中增加一个元素
4.1append方式增加,在末尾追加元素
list1.append(7)
print(list1)
4.2 insert在指定的位置添加元素
list1.insert(1,‘maoshiba’) # 【1 索引】位置通过索引确定 [0, ‘maoshiba’, 2, 3, 4, 5, 7]
print(list1)
4.3增加多个元素,使用.extend()方法
先创建元素,再使用.extend()方法在原有列表list1上添加新创建的元素
list1=[1,2,3]
zjys=[10,20,30,40] # 在原有列表上增加元素 [10,20,30,40]
list1.extend(zjys)
print(list1)

5、删除元素
list4=[20,21,22,23,24,25]
5.1 pop的方式删除 默认删除列表中最后一个元素
list4.pop()
print(list4)

5.2 指定删除,可以根据元素的索引指定删除
list4.pop(1)
print(list4)
5.3 根据元素的值去删除 直接将需要删除的元素填入
list4.remove(24)
print(list4)
5.4、del方式删除
list4=[1,1]
del list4[-1]
print(list4)
5.5 如果列表里面有重复的元素怎么删除,只想删除其中一个怎么删除
list5=[6,6,3,7,7,8,89,68,34,4,5,7,76,7,13,7,57,8,890,0,24,23,35,67,56,5,8,7,1,2,3]
首先可以找到某个值在列表中出现的次数
print(list5.count(7))
print(list5.index(要找的值,从第一个值索引0开始直到最后一个值))
print(list5.index(7,0,len(list5))) # 找到重复元素的起始索引
再根据索引删除
list5.pop(3)
print(list5)
6、list可以支持运算+ * in/not in
list6=[1,2,3,4,5]
list7=[1,7,8,11,10]
6.1 加法运算+
list8=list6+list7
print(list8)
6.2 乘法运算* 相当于是复制
print(list7*2)
6.3 判断
if 1 in list7:
print(‘有滴’)
else:
print(‘冇得’)
7、其他操作
.sort 列表默认升序排列
list7.sort()
print(list7)
降序排列
list7.sort(reverse=True)
print(list7)

字典
d={key1:value1,key2:value2…}
key是键,value是值,key1:value1 是键值对,键和值之间用英文冒号:隔开 键值对之间使用英文,隔开
key必须是唯一的,并且数据不可变
1、如何创建一个字典
dict1={‘xingming’:‘maoshiba’,‘mima’:‘123456’}
print(dict1)
2、创建空字典
dict2={}
print(dict2)
3、访问字典里面的元素,通过 键 去访问
print(dict1[‘xingming’],dict1[‘mima’])
4、修改字典 其实是修改里面的值,因为键是唯一的,是不能修改的
dict1[‘xingming’]=‘maoshiba1’
print(dict1)
dict1[‘mima’]=‘1020304050’
print(dict1)
5、增加一个键值对
dict1={‘xingming’:‘maoshiba’,‘mima’:‘12345678910’,‘地址’:‘云南’}
dict1[‘性别’]=‘帅哥’
print(dict1)
6、删除键值对
del dict1[‘地址’]
print(dict1)
6.1、通过函数删除
dict1.pop(‘xingming’)
print(dict1)
6.2、删除最后一个键值对
dict1.popitem()
print(dict1)
6.3、删除整个字典 print()打印 not found
dict2={‘xingming’:‘整个’}
del dict2
print(dict2)

7、字典常见的内置函数
返回某个数据类型的长度,dictx 为字典类型 长度为 1
dictx={‘shuzi’:‘123’}
print(len(dictx))

8、类型转换
把字典转换成字符串类型
dicty={‘leixing’:‘转换’}
转换=str(dicty)
print(转换,type(转换))
9、依次获取字典中key和value的值
dictz={‘xingming’:‘maishiba’,‘mima’:‘12345678’,‘dizhi’:‘yunnan’}
for x,y in dictz.items():
print(x,y)
10、把下面内容作为字典里面的键
list100=[‘xingming’,‘mima’,‘dizhi’,‘xingbie’]
dict3={}
dict3=dict3.fromkeys(list100,‘maoshiba’) # 只有一个唯一的值 maoshiba
print(dict3)

11、字典的成员判断,通过键去判断
dict3={‘xingming’:‘maoshiba’}
if ‘xingming’ in dict3:
print(‘存在xingming这个键’)
else:
print(‘冇得’)
12、多个元素进行更新,如何更新字典
dict4={‘xingming’:‘maoshiba’,‘mima’:‘12345678’}
dict5={‘xingming’:‘maomao’,‘dizhi’:‘云南’,‘xingbie’:‘帅哥’}
#把dict5更新到dict4中,会按照不同的key去更新
dict4.update(dict5)
print(dict4)
如果是同一个key,但是值不同,更新后会怎么样?
key相同,但是值不同,看是把谁更新到谁比如上面把dict5更新到dict4中,结果 key相同的会将后者的值替换前者的值
dict4={‘xingming’:‘maoshiba’,‘mima’:‘12345678’}
dict5={‘xingming’:‘maomao’,‘mima’:‘123’,‘dizhi’:‘云南’,‘xingbie’:‘帅哥’}
dict4.update(dict5)
print(dict4)

集合数据类型,集合中的数据是无序的
集合也可以通过{}来表示,集合中的元素可以是任意各种形态
元素可以是任意类型,每个元素之间可以用逗号隔开

1、创建一个集合,集合中是自动去重的
set1={1,2,3,4,5,6,2,4,1,2,3,‘maishiba’}
print(set1,type(set1))
2、创建一个空集合,你以为是这样的set={},这其实是一个空字典呀! dict2={},正确的空集合是这样的
set2=set()
print(set2,type(set2))
3、创建集合的另外一种方式
set3=set([1,2,3,4,5,6,5,4,3,2,1])
print(set3,type(set3))
4、访问集合
print(set1[0]) # 打印报错是因为集合是无序的,因此不能被访问
print(set1[0])
TypeError: ‘set’ object is not subscriptable
5、集合支持那些运算,集合只能求合集,并集,交集
a&b交集:公共的部分
a|b并集:全部的元素去重
a-b差集:返回a中所有的元素,出去b中有的元素
a^b非交集:返回的是a和b中没有重复的元素
set4={1,2,3,4,55,56,77,87}
set5={5,6,7,8,9,‘maoshiba’}
a=set4&set5
b=set4|set5
c=set4-set5
d=set4^set5
print(‘a’,a)
print(‘b’,b)
print(‘c’,c)
print(‘d’,d)
6、set常见的内置函数
集合运算函数详见第5条
交集 类似第5点的交集 intersection()
print(set4.intersection(set5))
并集 类似第五条的并集 union()
print(set4.union(set5))
交集 类似第五点的交集 difference
print(set4.difference(set5))
非交集 类似第五点的非交集 symmetric_difference()
print(set4.symmetric_difference(set5))

7、元素操作的相关函数
7.1增加一个元素到集合里面
set4.add(20)
print(set4)
7.2、删除元素 pop是随机删除元素,没有办法指定删除某个位置的元素
set4.pop()
print(set4)
7.3、remove 删除(删除没有的元素会报错)/
discard也是删除,区别是disca删除没有的元素不会报错(意味着可以指定删除集合里面的元素)
set4.remove(20)
print(set4)
remove 删除不存在集合中的元素会报错,报错如下
set4.remove(20)
KeyError: 20
discard 删除不存在集合中的元素不会报错
set4.discard(20)
print(set4)
8、常用的判断函数
判断返回有没有重复元素集合
判断有没有重复元素。没有重复的元素返回True,有重复返回False
print(set4.isdisjoint(set5))
判断某个集合是不是另一个集合的子集,是 返回Ture 否 返回Flaser
集合set6中的元素是集合set7中任意一个元素。
如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集。
set6={1,2,3,4}
set7={1,2,3,4,5,6,7,8,9}
print(set6.issubset(set7)) # 集合6是集合7的子集
判断某个元素是不是另一个集合的父级,是返回Ture ,否返回Flase
print(set6.issubset(set7))
9、更新
set6.update(set7)
print(set6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值