Python基础入门Task2学习笔记

本学习笔记为阿里云天池龙珠计划Docker训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5176.22758685.J_6770933040.1.6f103da1SLrbkx

一.学习知识点概要


列表

1. 列表的定义 2. 列表的创建 3. 向列表中添加元素 4. 删除列表中的元素 5. 获取列表中的元素 6. 列表的常用操作符 7. 列表的其它方法

元组

1. 创建和访问一个元组 2. 更新和删除一个元组 3. 元组相关的操作符 4. 内置方法 5. 解压元组

字符串

1. 字符串的定义 2. 字符串的切片与拼接 3. 字符串的常用内置方法 4. 字符串格式化

字典

1. 可变类型与不可变类型 2. 字典的定义 3. 创建和访问字典 4. 字典的内置方法

集合

1. 集合的创建 2. 访问集合中的值 3. 集合的内置方法 4. 集合的转换 5. 不可变集合

二、学习内容

首先了解,可变类型和不可变类型,一般通过hash函数分辨一个数据类型x,若x能被hash而不报错,则x为不可变类型,反正则为可变类型;数值,字符,元组为不可变类型;字典,列表,集合为可变类型。

列表

  1. 定义:用中括号[]定义一个整体列表,用逗号将每个元素分开。
  2. 用[0]*5可以创建[0,0,0,0,0]列表          但是注意a=[0]*3    x=[a]*4   为创建4个[0,0,0]列表
  3. 用mix=[ ]可以创建一个混合列表,列表中不用包含相同类型元素
  4. 用appen和expend向列表内加元素,两者均是在列表尾部加入obj.但是append只接受一个参数,该参数可以为整体,而extend为扩展,可以有多个参数加入,不同于append整体加入,整体会被拆开加入列表。
  5. insert可以在指定位置后面加入元素,只能为一个元素,remove可移除列表中所匹配的第一个元素,pop也为移除,但是默认index=-1.即最后一项,而且可以返回值即索引。
  6. 获取列表中的值:print(list[start:stop:step])  start和stop取值同前面一样,但是此处引入了新概念“浅拷贝”,就如单冒号list[:]为获取列表中所有元素,但是若列表有其他赋值,便无法拷贝,仍然拷贝原有值,如:

      此处list1被赋值,但是list3浅拷贝了list1,无法获取赋值后的list1,仍然为原有值

其他方式,count和index分别代表,数出元素出现次数和元素第一次出现的位置, 不做多余解释 ,还要反向列表reverse,分类列表sort,但是这两个不返回值

元组

  1. 定义:用小括号()定义整体,用逗号分开获取值也同列表一样print([start:stop:step])
  2. 但是元组具有不可更改性,也无法赋值,但若有另一集合嵌套如:(1,2,3,[4,5])可以更改中括号内的值
  3. 注意元组内若只有一个元素要用逗号结尾,如t=(1,)避免括号被当作运算符
  4. 由于无法更改内容,内置方法只有count和index,用法和列表相同。
  5. 解压元组:如t=(1,10.31,('ok','python'))   (a,b,(c,d)=t  即解压元组,需要按照元组结构写  再print(a,b,c,d)即可解压出 1 10.31 ok python
  6. 可以用通配符*加rest表示多个元素如t=(1,2,3,4)    (a,*rest,b)=t     *rest表示(2,3)       若不需要*内的内容也可以用*加下划线_来表示,也就是只需要提取 a 和 b 的时候。

字符串

  1. 定义:引号之间的字符集合,单、双引号均可以
  2. 若字符串内需要表示单引号或者其他字符,可以用反斜杠\转义 如 s='let\'s go' print(s)  为lte's go
  3. 一般文件名在字符串前面加字母r使得反斜杠\没有转义语义  如print(r'C:\file')   得C:\file
  4. 字符串和元组一样不可更改,无法赋值,但是同样可以用[start:stop:step]索引
  5. 内置写法较多,这里我展示我觉得较重要的
  6. capitalize()将字符串首个字母大写,lower所有大写转小写,upper所有小写转大写,swapcase大转小,小转大
  7. ljust/rjust(width,fillchar)   其中fillchar表示填充方式,默认为空格,l代表左对齐右边填充,r代表右对齐左边填充如:

replace(old,new,max)将字符串内的old转成new,若指定了max,则替换次数不会超过max;split(str='',num)表示切开字符串并且返回成列表表示,str分割方式默认为空格,num同前面max为替换次数

可以用split()[1]表示取出索引值为1的列表值,因为split将字符串切成列表了,可以妙用如下:

字典

  1. 定义:由无序的键值对组成如   键(key):值(value)  键必须各不相同
  2. 语法由大括号{}为整体,逗号分开每一个键值对,冒号分开键和值
  3. 创建与访问字典:创建空字典   dic=dic()  然后直接给key赋值   dic['a']=1  print(dic)  就为{'a':1}
  4. 有个特殊的创建方法,等号连接,如:dic=dic(name='tom',age=10)   key只能为字符串,而且不能带引号。
  5. 内置方法:
  6. .fromkeys(seq,value)创建新字典   用序列seq创建的键,再给value初始值,value默认为None,如:seq=('name','age')   dict.fromkeys(seq,10) 字典为{'name':10,'age':10}
  7. .get(key,default=None)   返回指定键的值,没有就返回None(默认值)  与.setdefault()不同的是,如果字典中没有值setdefault会加入指定的key,并加入默认的值为None
  8. .update()为更新字典内容,即用新的字典覆盖旧的字典

大部分内置方法与列表和元组相同,而且看英文可以看出作用,不多写了。

集合set

  1. 定义:set和dict类似,set由独一无二的key组成,但是没有value值
  2. 创建方法:空集合s=set(),注意set必须写,单独的括号为创建空字典;或者一堆的元素直接用花括号包住,重复的元素会被set过滤掉
  3. 用set()工厂函数将一个元组()或者列表[]转成集合;可以通过这种办法将列表转换成集合去除重复元素,如:

   第一种是通过列表的append去除重复元素,第二种是通过集合去除重复元素

访问集合里的值

  1. .len()得集合大小  .for将集合每一个值读取出来
  2. 内置方法:.add加入一个单个元素,但是已存在便无操作;update可以加入一个集合或者元素,不同于add它重复会覆盖。
  3. remove和discard的区别:前者若没有这个元素会报错,后者不会
  4. 集合之间的关系和符号:intersection交集,符号为&          union并集,符号|         difference差集,符号-         symmetric异或,符号^            issubset包含于,符号<=      issuperset包含,符号>=    
  5. isdisjoin为判断两个集合是不是不相交,判断的内置方法都是返回true和false值

zip压缩列表的方法:

   zip压缩时长度与最短的对象相同,用星号*来解压成为列表。

三、学习问题与解答

1.  .sorted(iterable, key=None, reverse=False) 对所有可迭代的对象进行排序操作.

iterable为可迭代对象,指的是存储元素的容器对象,常见的可迭代对象有list,tuple,dict,set,str等。

key为可迭代对象里的参数,只能为一个,指定其为排序目标

reverse为排序方法,有true升序,false降序。

2.      .update()是将一个元组或者列表等合并到一个字典里如:

d = {‘one’: 1, ’two’: 2}

d.update({‘three’: 3, ’four’: 4})

print(d)

输出为{‘one’: 1, ‘four’: 4, ‘three’: 3, ‘two’: 2}

在我看来,合并后的排序是无序的,随机排,不按照原来或任何一个顺序。

四、学习思考与总结

学到了task2,这章内容大都是关于如何创建可迭代对象,在task1中也出现了这个说法,但是一直不知道什么意思,而且在第一章的时候还出现了很多后面的名词,key,value,不到这一章很难明白,但是说明这些学习是朝着越来越明朗的方向前进,要记得很多,但是还是之前的那个方法,无论你看多少遍,都不如自己敲一遍代码强,所以我的笔记不局限于这篇文章,还有手写,还有一些是电脑上敲出来保存的,我相信这些会让我更加熟练,加油。

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值