IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 一篇文章搞明白python中的列表(小白新手所学内容(三)之列表) -> 正文阅读

[Python知识库]一篇文章搞明白python中的列表(小白新手所学内容(三)之列表)

?2022.9.10 更

2022.9.11更

列表总序

?说到数据结构,相信很多非科班的人也听说过,那怎样理解数据结构呢?换一种说法什么是数据结构?

? ?数据结构是相互之间存在一种或者多种特定关系的集合。也可以理解为,数据结构就是将数据按照某种方式组合在一起的结构。这种数据可以是基本数据类型,比如整形、浮点数、和字符串等等?

? ? 在python中常见的数据结构(自带的)是列表、元组、以及字典等。但是在python第三方包中还有其他的数据结构,比如numpy中的datafram或者series。

1.定义列表

? 列表什么是列表,就是一系列元素按照某种顺序排列的集合(是有序的)。在python中用[]表示列表,并用逗号做分隔。

? ?语法定义:

? ????????列表名字 = [元素1,元素2,元素3,...]

? ???????举个例子:

#定义一个列表
name_python_pc = ['陈升','刘德华','杨幂','tfboys']
print('列表中的人名有:',name_python_pc)

????????输出的结果为

列表中的人名有: ['陈升', '刘德华', '杨幂', 'tfboys']

? ? ? ? ?还有一种是字符串变为列表,

????????语法结构为:

? ? ? ? list('字符串’)

print(list('hello'))
print(list('无极太子'))

? ? ? ? 输出后:

['h', 'e', 'l', 'l', 'o']
['无', '极', '太', '子']

?????????列表是动态的是可变的!

对列表的进行的操作:访问元素、插入元素、修改元素,删除元素,对列表进行排序

2.访问列表元素

? ? ? ? 访问列表元素,因为列表是有序序列的集合,每一个元素都自动带有一个位置信息,也就是索引。在编程语言中,也就是索引!我们根据索引访问列表中的元素

? ? ? ? 语法是

? ? ? ? 列表名 [ 索引]

#访问元素列表
fourElements=name_python_pc[2]
print('第三个元素是:',fourElements)
fourElements_two = name_python_pc[1]
print('第二个元素是:',fourElements_two)

????????上面的例子输出的结果是

第三个元素是: 杨幂
第二个元素是: 刘德华

????????计算机都是从0开始进行检索的,所以第三个元素是索引值为2,需要注意的是如果想要访问最后一个元素,而不记得它的索引号。我们可以把索引值设置为-1

3. 添加列表元素

? ? ? ? 列表是可变的,我们想要添加元素有两种情况,一种是指定位置插入一个元素。另一种是在列表的最后插入元素。

? ? ? ????????? 第一种情况

? ? ? ? ????????语法为:

? ? ? ? ????????object.insert (index,x)

? ? ? ? ????????object? 是对象(这里是列表);

? ? ? ? ????????insert 是方法,意思是插入;

? ? ? ? ????????index 是准备插入到其前面元素的那个索引;

? ? ? ? ????????x? ? ? ? 是准备插入的元素;

????????举个例子

#添加列表元素
#(指定位置添加列表)
name_python_pc.insert(0,'魏璎珞')
print('现在的元素列表为:',name_python_pc)

????????输出结果为:

现在的元素列表为: ['魏璎珞', '陈升', '刘德华', '杨幂', 'tfboys']

????????这就是常用的方法。

????????????????第二种方法

? ? ? ? ? ? ? ? 在末尾添加新元素,用到的方法是.append()

? ? ? ? ? ? ? ? 语法为:

? ? ? ? ? ? ? ? ? ? ? ? object.append( x)

? ? ? ? ? ? ? ? ? ? ? ? object? 是对象;

? ? ? ? ? ? ? ? ? ? ? ? append? 是附加的意思;

? ? ? ? ? ? ? ? ?举个例子? ? ? ??

#(在列表末尾添加元素)
name_python_pc.append('傅恒')
print('在末尾添加元素:',name_python_pc)

? ? ?????????输出结果为:

在末尾添加元素: ['魏璎珞', '陈升', '刘德华', '杨幂', 'tfboys', '傅恒']

? ? ? ? ?值得一提的是,在项目开发中,第二种方法经常被用来构建一个新的列表。首先,创建一个空的列表,然后在程序运行过程中使用append()方法添加元素?

#构建一个新的列表
qing_palace_drama = []
qing_palace_drama.append('皇上')
qing_palace_drama.append('富察皇后')
qing_palace_drama.append('高贵妃')
qing_palace_drama.append('纯妃')
print('使用append()构建列表为:',qing_palace_drama)

????????输出结果为

使用append()构建列表为: ['皇上', '富察皇后', '高贵妃', '纯妃']

?????????就是慢慢添加最后一个元素,不断构成一个列表

4.修改列表元素

? ? ? ? 修改元素跟访问元素一样需要根据索引值即可修改元素

? ? ? ? 语法为:

? ? ? ? 列表名为 [ insex ] ='新的值'

? ? ? ? 举个例子

#修改列表元素
name_python_pc[2]='扶摇'
print('修改过后的新列表为',name_python_pc)

????????输出结果为:

修改过后的新列表为 ['魏璎珞', '陈升', '扶摇', '杨幂', 'tfboys', '傅恒']

? ?这里面把刘德华去掉了,变成了扶摇

5.删除列表中的元素

? ? ? ? 在项目中,有两种方法删除元素中列表。

? ? ? ? 第一个根据元素值删除,第二个是根据元素值删除。根据索引值删除用的是del语句或者.pop方法

? ? ? ? 语法:

? ? ? ? del (index)

????????或者

? ? ? ? object.pop( )? ?这个是删除列表中最后一个元素

????????object.pop(index)

????????举个例子

#删除列表元素
print('原来列表中的元素是:',name_python_pc)
del name_python_pc[0]
print('del语句删除列表中的元素:',name_python_pc)

????????输出结果为:

原来列表中的元素是: ['魏璎珞', '陈升', '扶摇', '杨幂', 'tfboys', '傅恒']
del语句删除列表中的元素: ['陈升', '扶摇', '杨幂', 'tfboys', '傅恒']

? ? ? ?用del语句?删除了元素中索引值为0的魏璎珞

?????????下面这个是用pop方删除列表中的元素

pop_name_python_pc= name_python_pc.pop(0)
print('pop方法删除列表中的元素为:',pop_name_python_pc)
print('pop方法删除列表中的元素过后的方法为:',name_python_pc)
final_name_python_pc=name_python_pc.pop()
print('默认删除最后一个元素为',final_name_python_pc)
print('删除最后一个元素的列表为:',name_python_pc)

? ? ? ? 输出结果为:

pop方法删除列表中的元素为: 陈升
pop方法删除列表中的元素过后的方法为: ['扶摇', '杨幂', 'tfboys', '傅恒']
默认删除最后一个元素为 傅恒
删除最后一个元素的列表为: ['扶摇', '杨幂', 'tfboys']

?????????提示:如果我们不记得索引,只记得值时,我们可以用方法.remove()移除

? ? ? ? 语法:

? ? ? ? ? 列表名.remove('元素值’)

?????????举例如下:

????????

name_python_pc.remove('扶摇')
print('移除扶摇过后列表为:',name_python_pc)
print(qing_palace_drama)
qing_palace_drama.remove('纯妃')
print('根据列表中的元素进行删除:',qing_palace_drama)

? ? ? ? 输出结果为:? ? ?

移除扶摇过后列表为: ['杨幂', 'tfboys']
['皇上', '富察皇后', '高贵妃', '纯妃']
根据列表中的元素进行删除: ['皇上', '富察皇后', '高贵妃']

? ? ? ? ?remove一次只能删除一个元素值,注意该方法没有返回值。

6.列表排序

? ? ? ? 列表排序分为永久性排序和临时性排序。

? ? ? ? 永久性排序是真正改变列表中元素的顺序,用到的方法是.sort()

? ? ? ? 临时性排序用到的方法是不改变原来的排列顺序,用到的方法是.sorted()。它返回的新建的排过序的列表副本,原来的列表顺序不受影响。

? ? ? ? 举个例子

????????

#构建新列表:
list_1 = ['p','f','b','a','d','e','f','g']

list_1.sort()
print('永久排序过后的列表为:',list_1)

#复制列表
print('原列表list_1为:',list_1)
list_2 = list_1.copy()
print('复制过后的列表list_2为:',list_2)
sorted(list_2)
print('临时性排序过后的列表为:',list_2)
print('原列表list_2为:',list_2)

????????输出的结果为:

永久排序过后的列表为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
原列表list_1为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
复制过后的列表list_2为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
临时性排序过后的列表为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
原列表list_2为: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']

? ? ? copy是复制列表,从上面可以看出,临时排过序后,原列表不变

? ? ? ? 其他常用的方法还有函数len()求列表长度、函数reverse()反转列表

????????举个例子

#统计列表中f出现的次数
number_list_1_f = list_1.count('f')
print('f出现的次数为:',number_list_1_f)

#永久颠倒顺序
print('原来的顺序是:',list_2)
list_2.reverse()
print('颠倒后的顺序:',list_2)

?????????输出的结果为:

f出现的次数为: 2
原来的顺序是: ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']
颠倒后的顺序: ['p', 'g', 'f', 'f', 'e', 'd', 'b', 'a']

????????应该还记得.count是统计字符串出现的次数吧。

在python中,我们还经常使用in和not in 判断一个元素是否在列表中,如果满足条件,则返回true 不满足则返回false.

????????

in_e = 'e' in list_2
print('使用in判断e元素是否在列表中',in_e)
not_in_v = 'v' not in list_2
print('使用not in判断是否在列表中')

7.列表切片

? ? ? ? 列表切片就是把列表切开,处理列表中的部分元素。它是整个列表中的重点内容,在以后可能会经常用到。

? ? ? ? 我们要用到的语法为:? ? ? ?

? ? ? ? [start:end:step]

????????前文中有详细的介绍这几个部分是什么意思。这里就简单的在介绍一遍

? ? ? ? start是起始索引,从0开始

? ? ? ? end是终止索引,但是end-1为实际索引值

? ? ? ? step为步长,步长为正时向右取值,步长为负时,反向取值

注意最后于一点,切片的结果是不包含结束索引,即不包含最后一位,-1代表列表的最后一个索引

????????

#切片
name_slice = ['扶摇','周叔','国公','无极太子','医圣','非烟殿主','苍穹']
print('第三个到第五个:',name_slice[2:5])
print('前五个',name_slice[0:5])
print('后三个:',name_slice[-3:])
print('偶数位置:',name_slice[::2])
print('奇数位置:',name_slice[::1])
name_slice[3:3]= ['玄机','太渊','天煞']
print('插入元素',name_slice)

????????输出结果为:

第三个到第五个: ['国公', '无极太子', '医圣']
前五个 ['扶摇', '周叔', '国公', '无极太子', '医圣']
后三个: ['医圣', '非烟殿主', '苍穹']
偶数位置: ['扶摇', '国公', '医圣', '苍穹']
奇数位置: ['扶摇', '周叔', '国公', '无极太子', '医圣', '非烟殿主', '苍穹']
插入元素 ['扶摇', '周叔', '国公', '玄机', '太渊', '天煞', '无极太子', '医圣', '非烟殿主', '苍穹']

?8.计算列表长度

????????语法:

? ? ? ? len(列表名)

print(name_slice)
print(len(name_slice))

????????输出结果为:

['扶摇', '周叔', '国公', '玄机', '太渊', '天煞', '无极太子', '医圣', '非烟殿主', '苍穹']
10

9.返回元素所在索引位置

????????语法:

????????列表名.index('元素名‘)

print(name_slice.index('太渊'))

????????输出:

4

????????计算机的索引是从0开始的

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:10:11  更:2022-09-13 11:14:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:11:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码