Python语法6

Python语法6

这次我们整理关于元组,集合,字典的知识

元组

元组与我们之前讲的列表相似,但是元组不支持动态添加,删除元素,当然也不可以修改元素。

元组的初始化

元组用小括号表示,中间的元素用逗号隔开
注意,如果初始化只包含一个元素的元组,需要在该元素后面添加一个逗号

a = ()#初始化一个空元组
b = (1,3)
c = 6,"python",3,4
d = (5,)#如果写成(5),这里的小括号表示的是运算级的那里的小括号,就不再表示成元组的括号了
e =5,#这里也是一个元组,等价于(5,)

元组的解包

a = (1,3,4)
x,y,z = a
print(x,y,z)#输出1 3 4

所以之前学的交换数值的操作其实就相当于是一个元组的解包

a,b=3,4#将(3,4)元组解包,分别赋值给a,b
b,a=a,b#将元组(a,b)解包,分别赋值给b,a

同理,函数中一次返回多个值,其实也是返回一个元组

def func(x,y):
	return x+y,x-y
	
x,y=5,6
a,b = func(x,y)
print(a,b)

元组的比较操作

元组和列表均支持比较运算符:==,!=,>,<,>=,<=等,按照字典序进行比较

元组的其他操作

元组的下标访问元素、循环遍历、切片、加法和乘法运算等操作,都与列表相同。

集合

集合也是Python中常用的数据结构,用来存储不同元素,注意,集合中的元素是无序的。集合会自动判重,去掉重复元素。

集合的初始化

创建集合用花括号或set()函数。注意:创建空集合只能用set(),不能用{ },因为{ }创建的是空字典。

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}  # 会自动去除重复元素
print(basket)  # 重复的元素已经去除了

s = set()  # 初始化一个空列表
print(s)

a = [1, 2, 1, 3, 1]
b = set(a)  # 将列表转化成集合,一般是为了去重。
c = list(b)  # 将集合转化回列表
print(b, c)

x = "abracadabra"
a = set(x)  # 将字符串中的每个字符存到集合中
b = str(a)  # 注意,这里并不能将集合转化回原字符串,而是用格式化表示集合中的内容
print(a, b)

集合的常用操作

len(a)#返回集合a的长度
a.add(x)#在集合中添加一个元素
a.remove(x)#在集合中删除一个元素x,如果x不存在就会报错
a.discard(x)#删除集合中的x,如果x不存在,则不会执行任何操作
x in a#判断x是否在a中
x not in a#x是否不在a内

使用for循环遍历集合

a={1,2,3}
for i in a:
	print(i,end="")

字典

字典是Python中最常用的数据结构之一,用来存储映射关系。
注意,字典中的元素是无序的。
不同于列表,字典是以key进行索引的,可以将每个key映射到某个value。key可以是任何不可变类型,常用可以作为key的类型有数字和字符串。列表因为是可变的,所以不能作为key。value可以是任意类型。

字典的初始化

创建字典用花括号或者dict()函数

a = {"jack":23,"du463":32,"xiaocai":43}
print(a)

b = dict()
a[123]="23"#创建一个key-value对
print(a)
c=list(a)#将字典的关键字转换成列表
print(c)

字典的常用操作

len(a)#返回字典中的元素对数
a[x]#获取关键字x的对应值,如果x不存在,会报异常
a.get(x)#获取关键字x对应的值,如果x不存在,会返回none,不会报异常
a.get(x,y)#获取关键字x对应的值,如果x不存在,则会返回默认值y,不会报异常
a[x]=y#在字典中插入一个键值对(x,y),如果x存在,则会覆盖掉之前的值
del a[x]#删除关键字x对应的键值对,如果x不存在,会报异常
x in a#检查字典中是否存在关键字x
x not in a#检查字典中是否不存在关键字x
a.keys()#返回字典中所有的key
a.values()#返回字典中所有的value
a.items()#返回字典中所有由key和value组成的元组

举例:

a = {'abc': 1, 'def': 2, 'python': 3}  # 初始化一个字典

print(len(a))  # 输出3
print(a['def'])  # 输出2
print(a.get('def'))  # 输出2
print(a.get('xyz', 5))  # 因为'xyz'不存在,所以输出默认值5

a['hello'] = 4  # 插入一对元素 'hello' -> 4
print(a)  # 输出{'abc': 1, 'def': 2, 'python': 3, 'hello': 4}

a['def'] = 5  # 更新'def'映射的值
print(a['def'])  # 输出5

del a['python']  # 删除关键字'python'
print(a)  # 输出{'abc': 1, 'def': 5, 'hello': 4}

print('hello' in a)  # 输出True
print(a.keys())  # 输出dict_keys(['abc', 'def', 'hello'])
print(a.values())  # 输出dict_values([1, 5, 4])
print(a.items())  # 输出dict_items([('abc', 1), ('def', 5), ('hello', 4)])

使用for循环遍历字典

a = {'abc': 1, 'def': 2, 'python': 3}  # 初始化一个字典

for k in a:  # 遍历key
    print(k, end=' ')

for k in a.keys():  # 遍历key
    print(k, end=' ')

for v in a.values():  # 遍历value
    print(v, end=' ')

for k, v in a.items():  # 遍历key-value对
    print("(%s, %d) " % (k, v), end=' ')
posted @ 2023-10-25 21:38  du463  阅读(6)  评论(0编辑  收藏  举报