python基础三级,python3基础

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: