前言:
这篇文章是B站学习python入门基础班的视频的第五
六章内容,主要讲述的是列表,主要包括列表的创建,以及他的元素的增、删、查、改操作命令。

一、列表的初始化

为什么要使用列表?

列表就好比C语言中的数组,它可以在这个数组里面保存各种类型的数据,保存的数据更多,所以引入列表,来帮助变量只能保存一个数值的尴尬境地

a=['hello','world',95,98.5]
print(a)

在这个代码里面,list是列表名,保存的id值,然后这个id值可以指向保存里面三个数据的id值,三个数据的id值指向具体数值

列表的初始化:
有两种方法:
1.直接使用[],在[]里面写入列表

b=['hello','world',95,98.5]
print(b)

2.使用内置函数list(),在()里面加入[],创建列表,可以用在将range函数转换为列表

list2=list(['sad','sadsa'])
print(list2)list3=list(range(100))
print(list3)#list2=list(['sad','sadsa'],['sad','dsad'])          不能在里面创建多个列表的

列表的特点?

1.可以存储相同的元素

m=[98,98,98,'dsa']
print(m)

2.可以通过索引指定元素,从左到右的话,从0开始计数,从右到左的话,从-1开始计数,总之,列表中元素的个数等于从左到右的计数+从右到左的绝对值的和

m=['asdsa','sdadsa','qwewqe']
print(m[1],m[-2])           #会输出同一个值

3.可以存取任意数据类型的数据

二、获取列表指定元素的索引值

index(),获取列表指定元素的索引值,是通过list的index方法来获取的.

index方法使用有以下三个注意点:

1.index只会返回寻找到第一个的索引值,所以如果列表中有重复元素,index也只会返回第一个

list1=['hello','adasd','dsadsa','zxcxzc','hello']print(list1.index('hello'))        #输出为0     #虽然list1列表中有两个hello值,但是只会返回第一个找到的索引值,所以输出为0

2.如果index找不到指定元素,会报错的

list3=['cx','dsa',9800]
print(list3.index('hello'))         #输出:ValueError: 'hello' is not in list,这个属于报错,会导致下面的代码无法正常执行

3.index方法可以指定寻找的序列,index(‘要寻找的值’,x,y),x表示开始寻找的序列,y表示结束寻找的序列

list4=['sadad','xzc','qewqe','yiuy']
print(list4.index('qewqe',0,3))               #输出结果为1

三、 获取列表中的单个元素
1.可以正向获取,也可以逆向获取,正向获取的时候,从0开始计数,逆向获取的时候,从-N开始计数

2.如果获取的索引值超过列表的范围,就会报错

li=['xcz','sadas','xzxz','wqqww']print(li[1])                #输出第二个数据
print(li[-1])               #输出最后一个数据
# print(li[6])              超出列表的范围,所以报错

四、获取列表的多个元素

获取多个元素采用切片法,语法格式如下:

列表名[start:stop:step]

切片获取的列表为一个新的列表,因为他和旧的列表的id值是不相同的

lis=[0,1,2,3,4,5,6,7]
print(id(lis),lis)lis1=lis[2:6:1]
print(id(lis1),lis1)

总共会有一下几种场景使用:

1.正常操作

list1=[0,10,20,30,40,50,60,70,80,90]print(list1[0:7:1])     #会输出[0, 10, 20, 30, 40, 50, 60]print(list1[0:7:3])     #输出[0, 30, 60]

2.省略起始值.

省略初始值时,会默认初始值为0

print(list1[:7:1])      #输出[0, 10, 20, 30, 40, 50, 60]

3.省略终止值

省略终止值时,会默认终止值为最后一个数值

print(list1[1::1])       #输出[10, 20, 30, 40, 50, 60, 70, 80, 90]

4.省略步长

省略步长时,默认步长为1

print(list1[1:7:])       #输出[10, 20, 30, 40, 50, 60]

5.当步长为负数时

步长为负数时,可以理解为从起始值的位置开始减,一直减到终止值位置

print(list1[6:2:-1])       #输出[60, 50, 40, 30]

一般情况下,列表逆序输出的时候,都是采用步长为负数进行输出

print(list1[::-1])          #输出[90, 80, 70, 60, 50, 40, 30, 20, 10, 0]

五、列表元素的遍历

采用for in循环:

lis=[1,213,5.5,'sagdja','adsasd']
for item in lis:print(item)

列表元素的判断

in 或者 not in

lis=[1,213,5.5,'sagdja','adsasd']print('www' in lis)print(1 in lis)print('www' not in lis)print(1 not in lis)

六、 列表的添加操作

列表的添加元素有四种方法:

列表的添加操作不改变列表的id值,所以相当于没有新的列表产生

比较常用的是append,四种方法包括append,extend,insert以及切片法

1.append
将需要添加的元素填充到列表的末尾,只允许添加一个元素,如果这个元素是一个列表.会把这个元素当成一个列表,然后全部插入

lis=['zxZ','dwq','wqe','zxc','wr','cfwf']
lis.append(95)
print(lis)              #输出['zxZ', 'dwq', 'wqe', 'zxc', 'wr', 'cfwf', 95]lis2=[1,2,3,4]
lis.append(lis2)
print(lis)              #输出['zxZ', 'dwq', 'wqe', 'zxc', 'wr', 'cfwf', 95, [1, 2, 3, 4]]

2.extend

可以在末尾添加多个元素,是append的补充,比如在下面的lis1里面插入lis2,不会把lis2整体插入,会把里面的元素取出来,然后插入

lis1=['zxZ','dwq','wqe','zxc','wr','cfwf']lis2=[1,2,3,4]lis1.extend(lis2)print(lis1)                  #输出['zxZ', 'dwq', 'wqe', 'zxc', 'wr', 'cfwf', 1, 2, 3, 4]

3.insert

可以在列表中的任意位置插入元素,但是只能插入一个,语法格式如下

列表名.insert(索引值,插入的元素),表示在索引值-----前面----插入元素

lis1=['zxZ','dwq','wqe','zxc','wr','cfwf']lis2=[1,2,3,4]
lis1.insert(1,lis2)
print(lis1)                 #输出结果['zxZ', [1, 2, 3, 4], 'dwq', 'wqe', 'zxc', 'wr', 'cfwf']lis1.insert(0,98)
print(lis1)                 #在索引值前面插入字符   [98, 'zxZ', [1, 2, 3, 4], 'dwq', 'wqe', 'zxc', 'wr', 'cfwf']

4.片选插入

可以在列表的任意位置后面,插入多个元素,相当于切掉这个切片的元素值,改用新的元素代替
lis1=['zxZ','dwq','wqe','zxc','wr','cfwf']lis2=[1,2,3,4]lis1[1:4:]=lis2
print(lis1)                 #输出['zxZ', 1, 2, 3, 4, 'wr', 'cfwf']lis1[1::]=[1,2]
print(lis1)                 #输出['zxZ', 1, 2]

七、 列表中的删除操作

列表中的删除操作总共有五种方法,分别是remove,pop,切片,del,clear这五种,remove是根据这个元素的值来移除,而pop是以那个元素的索引值来移除

1.remove:用来移除列表中的某一个指定元素,会有三种情况

1.1移除这个元素不存在,这种情况会报错

'''lis=['sad','xzX','xzX','zxXZxxq']
lis.remove('qwe')               #输出:ValueError: list.remove(x): x not in list
print(lis)'''

1.2移除的这个元素在列表中有多个重复的,这种情况之会移除列表中第一个这个元素,不会移除所有的重复的

lis1=[1,5,6,8,9,7,5]
lis1.remove(5)
print(lis1)                     #输出[1, 6, 8, 9, 7, 5]

1.3正常移除

lis2=['xczc','dqdc.','24r2x','asda',98]
lis2.remove(98)
print(lis2)                     #输出['xczc', 'dqdc.', '24r2x', 'asda']

2.pop()

pop方法也会有三种情况

2.1索引值超出这个列表的范围

'''lis3=[1,2,3,5,7,9]
lis3.pop(8)
print(lis3)                    #输出IndexError: pop index out of range'''

2.2不知道索引值的话,会默认删除列表的最后一个元素

lis4=[2,5,9,7,'fds']
lis4.pop()
print(lis4)                     #输出[2, 5, 9, 7]

2.3正常移除

lis5=[5,9,'adasd','xZX','qwe']
lis5.pop(2)
print(lis5)                      #输出[5, 9, 'xZX', 'qwe']

3.切片删除

切片删除有两种情况,一种是把原列表的元素提取出来,组成一个新的列表,第二种情况是在原来的列表上面插入空的列表,就是用空的列表替换原来的列表

3.1

lis6=[5,9,9,7,2,3,8]
new_list=lis6[2:4]
print(new_list)                     #输出[9, 7]

3.2

lis7=[8,9,2,7,33,78,8]
lis7[2:4]=[]
print(lis7)                     #输出[8, 9, 33, 78, 8]

4.clear

指的是清空列表所有的元素,他就会变成一个空列表

lis8=[8,9,3,55,66,441.2,7]
lis8.clear()                    #语法格式如此
print(lis8)                     #输出[]

5.del

指的是直接删除这个列表变量,所以如果再打印这个变量的话,由于已经删除的关系,就会报错

'''lis9=[5,9651,25,456,879,4132,5641,7]
del lis9                        #语法格式如此
print(lis9)                     #报错NameError: name 'lis9' is not defined'''

八、列表元素的修改操作

  1. 对单个元素直接修改:
lis=[49,8,9,48,56,8,61,7]
print(lis)                  #输出[49, 8, 9, 48, 56, 8, 61, 7]
lis[5]=499
print(lis)                  #输出[49, 8, 9, 48, 56, 499, 61, 7]

2.切片修改:

lis1=[789,56,46,5,8,4,65,465,46,64]
lis1[1:2]=['python','cxz','cxzcz']
print(lis1)                 #输出[789, 'python', 'cxz', 'cxzcz', 46, 5, 8, 4, 65, 465, 46, 64]

九、 对列表的排序操作

有两种操作方法:

1.使用列表自有的sort()方法

2.使用内置函数sorted()方法

!!!他俩之间的区别在于前者不会产生新的列表,而后者会产生新的列表!!!

1.使用列表自有的sort()方法

该方法默认是升序排列,可以通过设置reverse的值为True是的其变成降序排列

list1=[6,451,5,456,4546,8,8,98,12,777]
list1.sort()
print(list1)            #输出:[5, 6, 8, 8, 12, 98, 451, 456, 777, 4546]list1.sort(reverse=True)
print(list1)            #输出[4546, 777, 456, 451, 98, 12, 8, 8, 6, 5]

2.使用内置函数sorted()方法

该方法默认是升序排列,可以通过设置reverse的值为True是的其变成降序排列

list2=[48,915,312,5,8,123,56,123]
list3=sorted(list2)
print((list3))          #输出[5, 8, 48, 56, 123, 123, 312, 915]list4=sorted(list3,reverse=True)
print(list4)            #输出[915, 312, 123, 123, 56, 48, 8, 5]

十、列表生成式:

语法格式如下

list=[要存储的列表元素 for i/item in range(a,b)]

range函数可以用以后其他的东西代替的,但是列表生成式可以固定下来的

print('-----------生成一个含有2,4,6,8,10的列表-----')li=[2*i for i in range(1,6)]
print(li)m=list(range(1,10))
print(m)

后言:
这篇博客实自己用来记录学习python笔记的博客,由于是初学者,可能博客中会有错误,或者解释不清楚的地方,如果有什么不懂,欢迎打扰我,只有不停的犯错中,才可以进步。

B站马士兵python入门基础版详细笔记(6)相关推荐

  1. B站马士兵python入门基础版详细笔记(4)

    前言: 这篇文章是B站学习python入门基础班的视频的第四章内容,主要讲述的是if-else语句,但是不包括循环结构,循环结构在下一章笔记中有记叙 一.顺序结构 什么是顺序结构呢?比如说 '''把大 ...

  2. B站 马士兵Python 入门基础版 - 课程笔记

    视频传送门:https://www.bilibili.com/video/BV1wD4y1o7AS 记得三连 文章目录 print的规则 数字类型 类型转换 Python中的运算符 链式赋值 参数赋值 ...

  3. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

  4. 儿童python教程书-Python入门基础教程(儿童版) [分享一本入门级教程]

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. 推荐书名 No Starch--Python for ...

  5. 神仙级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!

    一.初聊Python 1.为什么要学习Python? 在学习Python之前,你不要担心自己没基础或"脑子笨",我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很 ...

  6. 神仙级Python入门教程(非常详细),从零基础入门到精通,从看这篇开始

    一.初聊Python 1.为什么要学习Python? 在学习Python之前,你不要担心自己没基础或"脑子笨",我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很 ...

  7. 神仙级Python入门教程(非常详细),从零基础入门到精通,看完这篇就够了

    一.初聊Python 1.为什么要学习Python? 在学习Python之前,你不要担心自己没基础或"脑子笨",我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很 ...

  8. python入门基础代码初学

    python入门基础代码初学 一.检查python安装 二.print使用 二.使用python运算 三.enumerate()函数 一.检查python安装 PS C:\Users\admin> ...

  9. 【目录】Python 入门基础篇 <(^-^)>

    Python 入门基础篇 一.关于Python的介绍与准备工作 Python基础介绍 Jupyter notebook基础介绍 Jupyter notebook打开问题 Jupyter noteboo ...

最新文章

  1. OpenCV(25)轮廓检测(轮廓提取、属性、近似轮廓、外接矩形和外接圆)
  2. 从0开始搭建编程框架——插件
  3. ICLR 2019计算机视觉、NLP、图模型、对抗学习、表示学习和元学习
  4. 怎么判断日出时间早晚_珠海最全防堵攻略,知道这些上班时间或缩短半小时!有大数据分析!...
  5. 成功解决This DCH driver package is not compatible with the currently installed version of Windows. This
  6. sql两个数字之差取最接近的_从零学DAX/Sql/Python030203SQL数据分类汇总续篇
  7. C++library Sort库排序的实现算法(附完整源码)
  8. Python3 pickle模块的使用详解
  9. eclipse开发cocos2dx 3.2环境搭建之二: cocos2dx 3.2安装及测试运行 (An internal error occurred during: “C/C++ Indexe)
  10. Appointment search in Fiori and Webui
  11. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
  12. 用C/C++实现倒序输出,以12345为例
  13. wso2 安装_WSO2注册表安装简介
  14. linux,下载与安装
  15. 骏飞H5幸运刮刮乐源码
  16. 数组、集合、链表实现学生成绩管理系统
  17. excel导入mysql教程视频_excel数据导入SQL数据库的教程
  18. 如何自动注册推特推广号,推特注册的具体步骤
  19. 12、加权平均队列(WFQ-Weight Fair Queue)算法
  20. Emacs 编辑环境,第1部分:学习Emacs的基础知识

热门文章

  1. 窥探Linux内核进程信息task_struct
  2. 巧设BIOS,让老主板也支持U盘启动!
  3. 【C语言 实现图书管理系统】
  4. 对自己的大学期望与目标
  5. 菜鸟排版 latex + texstudio
  6. 水利水电安全员考试问答练习题库(4)
  7. AT指令(中文详解版)(二)
  8. 2020-06 前端技术汇总
  9. stm32正常运行流程图_深度分析:主流32位单片机为什么要学STM32?-可编程逻辑-与非网...
  10. php socket recv 超时,socket编程中的超时设置示例详解之一