python基础三级,python3基础
Yyds干货库存
第三章组合数据类型本专栏旨在详细讲解python的基本语法,简明扼要地总结语法中的重点和难点。针对零基础和初级水平的学习者。通过本栏目的学习,他们可以熟练掌握Python编程,为后续的数据分析、机器学习和深度学习打下坚实的基础。
本文已经收录在Python基础系列专栏中:Python基础系列教程免费订阅,持续更新。
3.1列表
3.1.1列表的表达式序列类型:内部元素有位置关系,可以通过位置序号来访问。元素列表是一个序列类型ls=[Python ,1989,true,{version: 3.7}],可以使用多种类型的元素,并支持添加、删除、搜索和更改元素的操作。
ls[Python ,1989,True,{version: 3.7}]
另一种生成方式:list(迭代对象)迭代对象包括:string、tuple、set、range()等字符串转换列表。
List(欢迎订阅本专栏)[欢,英,丁,读书,本,特,专栏]
元组列表
List((我,我们,非常,喜欢)[我,我们,非常,喜欢]
设置转移列表
List({ 李雷,韩梅梅,吉姆,格林 })[格林,吉姆,李雷,韩梅梅]
特殊范围()
对于[0,1,2,3,4,5]中的I:
打印(一)0
一个
2
三
四
5对于范围(6)中的I:
打印(一)0
一个
2
三
四
五
范围(起始编号、终止编号、编号间隔)如果起始编号为默认值,则默认值为0。
必须包括站点编号,但请注意站点编号不可用。
默认的数字间隔是1。
对于范围(1,11,2)内的I:
印刷(一)1
三
五
七
九
Range()到list list(range(1,11,2))[1,3,5,7,9]
3.1.2列表的属性列表长度为——len (list) ls=[1,2,3,4,5]
镜头5
列表的索引——与相同序列类型的字符串完全相同。变量名[位置号]
前向索引从0开始
反向索引从-1开始。
cars=[比亚迪,宝马,奥迪,丰田]print(cars[0])
打印(汽车[-4])比亚迪
比亚迪股份有限公司
列表的切片变量名[开始位置:结束位置:切片间隔]
汽车=[比亚迪,宝马,奥迪,丰田]
正向切片打印(cars[:3]) #前三个元素,起始位置默认,默认值为0;切片间隔默认为1 [比亚迪,宝马,奥迪] print (cars [1: 4: 2]) #第二个和第四个元素的索引差为2 [宝马,丰田] print (cars [:]) #获取整个列表,结束位置默认为,
反向切片cars=[比亚迪,宝马,奥迪,丰田] print (cars [:-4: -1]) #默认起始位置为-1。
Print(cars[:-1]) #获取反向列表[丰田,奥迪,宝马]
[丰田,奥迪,宝马,比亚迪]
3.1.3名单中的操作人员使用* * ensplist1 lis2 ensp* *表格实现列表a=[1,2]的拼接
b=[3,4]
B #这种用法用得不多[1,2,3,4]
Ensp编号42;列出ensp或ensp列表# 42;n ensp一种实现列表多重复制和初始化列表的方法
[0]*10[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
3.1.4清单1的操作方法。添加元素
在末尾添加元素列表——。append(要添加的元素)languages=[python , c , r] languages.append (Java )
语言[Python , C , R , Java]
在任意位置插入元素列表——。插入(位置号,要添加的元素)
将元素languages.insert(1, C )添加到位置编号的相应元素之前。
语言[Python , C , C , R , Java]
在列表1的末尾加入另一个列表。扩展(列表2)将列表2作为一个整体添加到列表1中。
languages.append([Ruby , PHP])
语言[Python , C , C , R , Java ,[Ruby , PHP]]
Extend将待列表2中的元素逐个添加到列表1中,但也可以通过加法来实现。
语言=[Python , C , C , R , Java]
languages.extend([Ruby , PHP])
语言[Python , C , C , R , Java , Ruby , PHP]
2.删除元素
删除清单一位置的要素ensp列表。pop (location)语言=[Python , C , C , R , Java]
语言. pop(1)
语言[Python , C , R , Java]
不写入位置信息,默认情况下删除最后一个元素languages.pop()。
语言[Python , C , R]
删除列表中第一个出现的要删除的元素ensp列表。remove(要删除的元素)语言=[Python , C , R , C , Java]
languages . remove(“C”)
语言[Python , R , C , Java]语言=[Python , C , R , C , Java ]
而语言中的“C ”:
languages . remove(“C”)
语言[Python , R , Java]
3.查找元素
要检查的元素在列表中第一次出现的位置ensp列表。索引(要检查的元素)语言=[Python , C , R , Java]
idx=languages.index(R )
idx2
4.修改元素。
通过“先索引后赋值”ensp修改元素;列表名称[位置]=新值语言=[Python , C , R , Java]
语言[1]=C
语言[Python , C , R , Java]
5.复制列表。
错误的方式:这种方式只相当于给列表一个别名languages=[Python , C , R , Java]
languages_2=语言
print(languages_2)[Python , C , R , Java]languages.pop()
印刷(语言)
print(languages_2)[Python , C , R]
[Python , C , R]
正确方式——浅拷贝当内容中也存在list的变量情况时,那么浅拷贝可能有问题,应该采用深拷贝。
1:列表。copy () languages=[Python , C , R , Java]
languages_2=languages.copy()
languages.pop()
印刷(语言)
print(languages_2)[Python , C , R]
[Python , C , R , Java]
方法二:列表【ensp:ensp]相当于对整个列表语言进行切片=[Python , C , R , Java]
languages_3=语言[:]
languages.pop()
印刷(语言)
print(languages_3)[Python , C , R]
[Python , C , R , Java]
6.对列表排序
使用列表。sort()对列表进行永久排序并直接对列表进行操作。如果没有返回值,默认是升序排序ls=[2,5,2,8,19,3,7]
ls.sort()
ls[2,2,3,5,7,8,19]
按降序对ls.sort排序(reverse=True)
ls[19,8,7,5,3,2,2]
使用sorted (list)对列表进行临时排序。原始列表保持不变,返回排序后的列表ls=[2,5,2,8,19,3,7]。
ls_2=已排序(ls)
打印(ls)
print(ls_2)[2,5,2,8,19,3,7]
[19,8,7,5,3,2,2]排序(ls,reverse=True)[19,8,7,5,3,2,2]
7.翻转列表。
使用列表。reverse()永久翻转列表,直接在列表上操作,没有返回值ls=[1,2,3,4,5]
打印(ls[:-1])
ls[5,4,3,2,1]
[1,2,3,4,5]ls.reverse()
ls[5,4,3,2,1]
8.使用for循环遍历列表。
ls=[1,2,3,4,5]
对于ls中的I:
印刷(一)1
2
三
四
五
3.2元组
3.2.1元组的表达式元组是一种序列类型,可以使用各种类型的元素。一旦定义,内部元素不支持添加、删除和修改操作。一般来说,元组可以被视为“不可变列表”
names=(彼得,保罗,玛丽)
3.2.2元组的操作不支持增加、删除、修改元素的操作。其他操作与list完全相同。3.2.3元组打包和解包的常用方法
例1返回值打包成元组def f1(x): #返回x的平方和与立方。
X * * 2,x * * 3 #实现装箱返回
打印(f1(3))
Print(type(f1(3))) # tuple type (9,27)
类“tuple”a,b=f1(3) #实现解包赋值。
打印(一份)
打印(b)9
27
例2带邮政编码的包装=[201901,201902,201903]
Name=[小明,小红,萧蔷]
List (zip (numbers,name)) [(201901,小明),(201902,小红),(201903,萧蔷)]for numbers,name in zip (numbers,name): #每次得到一个元组,立即解包并赋值。
打印(号码,姓名)201901小明
01902小红
萧蔷21903号
3.3字典
3.3.1字典的表达式映射类型:通过“键”到“值”的映射来实现数据的存储和查找。常规字典已经失灵,数据只能通过键来访问。学生={201901:小明,201902:小红,201903:萧蔷 }
学生
对字典键的要求
1.字典的关键字不能重复。如果它们被复制,先前的密钥将被覆盖。
学生={201901:小明,201901:小红,201903:萧蔷 }
学生{201901:小红,201903:萧蔷 }
2.字典的键必须是不可变的类型。如果密钥是可变的,则无法找到相应的存储值。不变类型:数字、字符串、元组。ensp一旦确定了就是它自己,但变化了就不是它了。变量类型:列表、字典、集合。ensp一旦确认,还可以随意增删改。因此,这三种类型不能用作字典键。d1={1: 3}
d2={s: 3}
d3={(1,2,3): 3}
上面没有错误,说明是合法的。
d={[1,2]: 3} -
类型错误回溯(最近一次调用)
模块中的ipython-input-68-bf7f06622b3f
- 1 d={[1,2]: 3}
TypeError:不可取消的类型:“listd={{1:2}: 3} -
类型错误回溯(最近一次调用)
模块中的ipython-input-69-188e5512b5fe
- 1 d={{1:2}: 3}
TypeError:不可取消的类型: dictd={{1,2}: 3} -
类型错误回溯(最近一次调用)
模块中的ipython-input-70-c2dfafc1018a
- 1 d={{1,2}: 3}
TypeError:不可取消的类型:“set”
3.3.2字典的性质字典的长度3354键值对的个数学生={201901:“小明”,201902:“小红”,201903:“萧蔷”}
学生组3
词典索引通过enspdictionary[key]ensp;以获得相应的值。
学生={201901:小明,201902:小红,201903:萧蔷 }
学生[201902]小红
3.3.3字典1的操作方法。添加键值对。
变量名[新键]=新值学生={201901:小明,201902:小红,201903:萧蔷 }
学生[201904]=小雪
学生{201901:小明,201902:小红,201903:萧蔷,201904:小雪 }
2.删除键值对。
通过del变量名[key待删除]学生={201901:小明,201902:小红,201903:萧蔷 }
德尔学生[201903]
学生{201901:小明,201902:小红 }
通过变量名。pop(键删除)学生={201901:小明,201902:小红,201903:萧蔷 }
Value=students.pop(201903) #删除键-值对,同时获取被删除的键-值对的值。
打印(值)
打印(学生)萧蔷
{201901:小明,201902:小红 }
变量名。pop item()ensp;删除一个随机的键值对,并返回元组中被删除的键值对。学生={201901:小明,201902:小红,201903:萧蔷 }
key,value=students.popitem()
打印(关键字,值)
打印(学生)201903萧蔷
{201901:小明,201902:小红 }
3.修改该值。
通过先索引然后赋值来修改相应的值。学生={201901:小明,201902:小红,201903:萧蔷 }
学生[201902]=小雪
学生{201901:小明,201902:小雪,201903:萧蔷 }
4.get()方法
d.get(key,default)emsp;从字典D中获取key key的对应值,如果没有这样的key,则返回default。
例:统计‘牛奶奶让刘奶奶买牛奶’,s=‘牛奶奶让刘奶奶买牛奶’中人物出现的频率
d={}
打印(d)
对于s中的I:
D[i]=d.get(i,0) 1 #如果该字符第一次出现,则返回默认0,然后1计数。如果之前有一个键I,则返回键I对应的值。
打印(d)
#打印(d){}
{ 牛:1}
{ 奶牛:1,牛奶:1}
{ 奶牛:1,牛奶:2}
{ 奶牛:1,牛奶:2,寻找:1}
{ 牛:1,牛奶:2,看:1,刘:1}
{ 牛:1,牛奶:3,看:1,刘:1}
{ 牛:1,牛奶:4,看:1,刘:1}
{ 牛:1,牛奶:4,看:1,刘:1,买:1}
{ 牛:2,牛奶:4,看:1,刘:1,买:1}
{ 牛:2,牛奶:5,看:1,刘:1,买:1}
5、d . keys()ensp;D.values()方法
分别拿出所有的钥匙和值。
学生={201901:小明,201902:小红,201903:萧蔷 }
打印(list(students.keys()))
print(list(students . values()))[201901,201902,201903]
[小明,小红,萧蔷]
6.d.items()方法和字典遍历
打印(list(students.items()))
对于k,v in students.items():#来解包
Print(k,v)[(201901,小明),(201902,小红),(201903,萧蔷)]
21901小明
01902小红
萧蔷21903号
3.4集合3.4.1集合的表达式是一系列不相等元素的无序集合(互斥)。元素必须是不可变的类型:数字、字符串或元组,可视为字典键,或字典学生={ 小明、小红、小明 } #值为None可用于重复数据删除。
学生{ 萧蔷,小明,小红 }
3.4.2布景操作小例子:Chinese_A={ 刘德华,张学友,张可颐,钟楚红,古天乐,林青霞 }
中文_A{ 刘德华,古天乐,张学友,张可颐,林青霞,钟楚红 }Math_A={ 林青霞,郭富城,王祖贤,刘德华,张可颐,黎明 }
Math_A{ 刘德华,张可颐,林青霞,王灏儿,郭富城,黎明 }
学生S T的中文和数学成绩都是A,他返回了一个新的集合,包括集合S和T中的元素Chinese_A Math_A{ 刘德华,张可颐和林青霞 }
或者中国数学至少有一个A的学生S T返回一个新集合,包括所有元素Chinese_A Math_A{ 刘德华,古天乐,张学友,张可颐,林青霞,王灏儿,郭富城,钟楚红,黎明 }
只有一个中文A的学生S T返回一个新集合,包括集合S和T中的非通用元素Chinese _ A Math _ A { 古天乐,张学友,王灏儿,郭富城,钟楚红和黎明 }
语言为A,数学不是A的学生S-T返回一个新的集合,包括元素Chinese_A-Math_A{ 古天乐,张学友,钟楚红 }在集合S中但不在集合T中
Math_A-Chinese_A{ 王灏儿,郭富城,黎明 },数学是A,语文不是A的学生
3.4.3添加元素——S .将(x)stars={ 刘德华,张学友,张可颐 }添加到布景的操作方法中。
Stars.add(王灏儿)
明星{ 刘德华,张学友,张可颐,王灏儿 }
元素——S.remove(x)stars.remove(王灏儿)被删除。
明星{ 刘德华,张学友,张可颐 }
该套件的长度为——len(S)len(stars)3。
借助star中star的for循环遍历集合3354:
印(明星)张学友
张可颐
刘德华
来自的博主timerring的原创作品。如需转载,请联系作者,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。