代码笔记:
'''
元组(tuple)基本格式:元组名 = (元素1,元素2,元素3,....)
注意:
所有元素包含在小括号内,元素与元素之间用逗号(,)隔开,不同元素可以是不同数据类型。
当元组只有一个元素时,必须要加逗号,否则返回这个唯一元素的数据类型。
元组只支持查询操作,不支持增删改操作。
元组也有下标,下标从0开始。
count(),index(),len()操作与列表相同。
'''
tua = (1, 2, 3, 4, 5, 'a', [234])
print(type(tua)) # <class 'tuple'>
tua1 = () # 定义空元组
print(type(tua1)) # <class 'tuple'>
tua2 = (1) # 当元组只有一个元素时,必须要加逗号,否则返回这个唯一元素的数据类型。
print(type(tua2)) # <class 'int'>
tua3 = (1,)
print(type(tua3)) # <class 'tuple'>
li = [1, 2, 3]
li[2] = 'a' # 列表允许更改操作
print(li) # [1, 2, 'a']
print(tua[5]) # a
# tua[2] = 4 # 报错:TypeError(类型错误),元组不支持修改操作。
print(tua.count(2)) # 1 统计2在元组中出现的次数
print(tua.index(4)) # 2 查找4在元组中的位置
print(len(tua)) # 7 返回元组内元素的个数
'''
元组的应用场景:
函数的参数和返回值。
格式化输出后面的()本质上是一个元组。
保护数据安全:数据不允许被修改的时候使用。
'''
name = '小华'
age = 18
print("%s的年龄是:%d" % (name, age)) # 小华的年龄是:18
info = (name, age)
print(type(info)) # <class 'tuple'>
print("%s的年龄是:%d" % info) # 小华的年龄是:18
'''
字典(dictionary)基本格式:字典名 = {键1:值1,键2:值2,...}
注意:
字典以键值对的形式保存,键与值用冒号(:)隔开,键值对之间用逗号(,)隔开。
键具有唯一性,值允许重复;如果键重复,则输出后面的值,即前面的值背后面的值覆盖。
字典中没有下标,查找元素需要根据键名进行查找。
常见操作:
查看元素:
变量名[键名]:键名不存在时,报错。
变量名.get[键名,返回值]:返回值可以省略,键名不存在时,返回none;
修改元素:
变量名[键名] = 要修改的值;列表通过下标修改,字典通过键名修改。
新增元素:
变量名[键名] = 要新增的值;键名存在就修改,不存在就新增。
删除元素:
del:
删除整个字典:del 字典名
删除指定元素:del 字典名[键名];如果键名不存在就会报错。
clear():清空字典里的所有数据,但是保存该字典。
格式:字典名.clear();
pop():删除指定键值对,键名不存在就会报错。
格式:字典名.pop(键名)
'''
dic = {'小明':18,'小华':20}
print(type(dic)) # <class 'dict'>
dic1 = {'小明':18,'小明':20}
print(dic) # {'小明': 20}
print(dic['小明']) # 18
# print(dic['小红']) # 报错:KeyError(键错误)
print(dic.get('小明')) # 18
print(dic.get('小红')) # None
print(dic.get('小红','不存在')) # 不存在
dic['小明'] = 22 #修改
print(dic) # {'小明': 22, '小华': 20}
dic['小红'] = 19 # 新增
print(dic) # {'小明': 22, '小华': 20, '小红': 19}
dic2 = {1:2}
del dic2
# print(dic2) # 报错:NameError(名称错误),dic2已经被删除了。
del dic['小红']
print(dic) # {'小明': 18, '小华': 20}
dic.clear()
print(dic) # {} 返回了一个空字典
dic['number']=123
print(dic) # {'number': 123}
dic.pop('number') # 删除键为number的元素
print(dic) # {}
'''
字典的操作:
len():求字典长度
格式:len(字典名)
keys():返回字典中的所有键名
格式:字典名.keys()
values():返回字典中所有的值
格式:字典名.values()
items:返回字典中所有的键值对,键值对以元组的形式返回。
格式:字典名.items()
字典的应用场景:利用键值对存储描述一个物体的相关信息。
'''
dic3 = {'name': '小华','age': 18,'score': 96.2}
print(len(dic3)) # 3 字典中有3个键值对
print(dic3.keys()) # dict_keys(['name', 'age', 'score'])
print(dic3.values()) # dict_values(['小华', 18, 96.2])
for i in dic3.keys(): # 用for循环取出字典中的所有键名
print(i)
for i in dic3.values(): # 用for循环取出字典中的所有值
print(i)
print(dic3.items()) # dict_items([('name', '小华'), ('age', 18), ('score', 96.2)])
for i in dic3.items(): # 用for循环取出字典中的所有键值对
print(i)
'''
集合(set)基本格式:集合名 = {元素1,元素2,...}
应用场景:集合是无序的,里面的元素是唯一的,可以用于元组或者列表去重。
注意:
集合中的元素可以是不同数据类型。
集合无序的特性涉及hash表。
由于集合的无序性,故集合中的元素不能够实现修改操作。
'''
s1 = {1, 2, 3, 4}
print(s1, type(s1),sep='\t') # {1, 2, 3, 4} <class 'set'>
s2 = {} # 定义空字典
print(type(s2)) # <class 'dict'>
s3 = set() # 定义空集合
print(type(s3)) # <class 'set'>
s4 = {'a', 'b', 'c', 'd'}
print(s4) # {'d', 'c', 'b', 'a'};每次打印的结果是无序的
print(hash('a')) # -1223095338836566612
print(hash('a')) # -1223095338836566612
print(hash('a')) # -1223095338836566612
# 字符串运行的每次结果不一样,每次的hash值不同,在hash表中的位置不同,实现了集合的无序性
print(hash(1)) # 1
print(hash(2)) # 2
print(hash(3)) # 3
# python中int型的hash值就是本身,hash表中的位置不会发生改变,所以顺序不会改变
s5 = {1,5,4,2,3,6,8,10,2,3,3,5}
print(s5) # {1, 2, 3, 4, 5, 6, 8, 10};根据集合的唯一性,实现自动去重。
'''
集合的相关操作:
添加操作:
add():
格式:集合名.add(需要添加的元素)
注意:
一次只能添加一个元素,添加的元素是一个整体。
如果添加的元素在原来集合中已经存在,则不进行任何操作。
update():
格式:集合名.update(需要添加的元素)
注意:
一次可以添加多个元素,括号内的元素必须是能够被for循环的可迭代对象(如字符串,列表,元组等)。
update是将要传入的元素进行拆分后,一个一个添加到集合当中。
删除操作:
remove():
格式:集合名.remove(要删除的元素)
注意:
删除的元素如果原集合中不存在就会报错。
一次只能删除一个元素。
pop():
格式:集合名.pop()
注意:
对集合进行无序排序,然后将坐边第一个元素删除。
discard():
格式:集合名.discard(要删除的元素)
注意:选择要删除的元素,有的话就删除,没有的话就不会发生任何改变。
'''
se1 = {1,2,3,4}
print("原集合:", se1) # 原集合: {1, 2, 3, 4}
se1.add(5)
print("新集合:", se1) # 新集合: {1, 2, 3, 4, 5}
se1.add((6,7,8)) # 添加一个元组
print("新集合:", se1) # 新集合: {1, 2, 3, 4, 5, (6, 7, 8)}
se2 = {1,2,3}
print("原集合:", se2) # 原集合: {1, 2, 3}
se2.update('hello') # 在集合中插入字符串
print("新集合:", se2) # 新集合: {1, 2, 3, 'e', 'l', 'o', 'h'};字符串插入进去是无序的
se2.update([5,6,7]) # 在集合中插入列表
print("新集合:", se2) # 新集合: {1, 2, 3, 'e', 'l', 'o', 5, 6, 7, 'h'}
se2.update((8,9)) # 在集合中插入元组
print("新集合:", se2) # 新集合: {1, 2, 3, 5, 6, 7, 8, 9, 'h', 'o', 'l', 'e'}
se3 = {'10', '12', 10, 12, 14}
se3.remove('12')
print(se3) # {'10', 10, 12, 14}
se4 = {10,1,2,3}
se4.pop()
print(se4) # {1, 10, 2}
se4.add('a')
print(se4) # {1, 2, 10, 'a'}
se4.pop()
print(se4) # {2, 10, 'a'}
se5 = {1, 2, 3, 4, 5}
print(se5) # {1, 2, 3, 4, 5}
se5.discard(5)
print(se5) # {1, 2, 3, 4}
'''
交集(&)和并集(|):
交集:取两个集合共有的部分。
格式:集合1 & 集合2
注意:如果两个集合没有交集,则返回一个空集合set()。
并集:取两个集合中的所有元素,重复的仅保留一个(集合的唯一性)。
格式:集合1 | 集合2
'''
set1 = {'小华', 1, 2, 3, 4}
set2 = {2, 3, 4, 5, '小华'}
print(set1 & set2) # {2, 3, 4, '小华'}
set3 = {5, 6, 7, 8}
set4 = {10, 5, 7, 9, 4}
print(set3 | set4) # {4, 5, 6, 7, 8, 9, 10}
运行结果:
<class 'tuple'>
<class 'tuple'>
<class 'int'>
<class 'tuple'>
[1, 2, 'a']
a
1
3
7
小华的年龄是:18
<class 'tuple'>
小华的年龄是:18
<class 'dict'>
{'小明': 18, '小华': 20}
18
18
None
不存在
{'小明': 22, '小华': 20}
{'小明': 22, '小华': 20, '小红': 19}
{'小明': 22, '小华': 20}
{}
{'number': 123}
{}
3
dict_keys(['name', 'age', 'score'])
dict_values(['小华', 18, 96.2])
name
age
score
小华
18
96.2
dict_items([('name', '小华'), ('age', 18), ('score', 96.2)])
('name', '小华')
('age', 18)
('score', 96.2)
{1, 2, 3, 4} <class 'set'>
<class 'dict'>
<class 'set'>
{'c', 'd', 'a', 'b'}
-2301105608563372962
-2301105608563372962
-2301105608563372962
1
2
3
{1, 2, 3, 4, 5, 6, 8, 10}
原集合: {1, 2, 3, 4}
新集合: {1, 2, 3, 4, 5}
新集合: {1, 2, 3, 4, 5, (6, 7, 8)}
原集合: {1, 2, 3}
新集合: {1, 2, 3, 'h', 'l', 'o', 'e'}
新集合: {1, 2, 3, 'h', 'l', 5, 6, 7, 'o', 'e'}
新集合: {1, 2, 3, 'h', 'l', 5, 6, 7, 8, 9, 'o', 'e'}
{10, 12, 14, '10'}
{1, 10, 2}
{1, 2, 10, 'a'}
{2, 10, 'a'}
{1, 2, 3, 4, 5}
{1, 2, 3, 4}
{'小华', 2, 3, 4}
{4, 5, 6, 7, 8, 9, 10}
Process finished with exit code 0