• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python数据类型之List列表实例详解

python 搞代码 4年前 (2022-01-07) 26次浏览 已收录 0个评论

这篇文章主要介绍了Python数据类型之List列表,结合实例形式分析了PythonList列表的概念、功能、定义以及判断、截取、遍历、切片等常见操作技巧,需要的朋友可以参考下

本文实例讲述了Python数据类型之List列表。分享给大家供大家参考,具体如下:

list列表

1.概述:

通过之前的学习,我们知道变量可以存储数据,但是一个变量只能存储一个数据,现在有一个班级,班级有20个人,现在求班级的平均年龄。

若按照之前的方式来解决

age1 = 10
age2 = 12

age20 = 12
average = (age1 + age2 +…+age20)/20

在这里,很显然这种方法显得很麻烦,而python提供了一种解决方案,就是使用列表,可以随时添加和删除其中的元素。

本质:list列表的本质是一种有序的集合

2.创建列表

语法: 列表名 = [元素1,元素2,元素3…说明:列表中的选项被称为元素,跟string类似,下标也是从0开始计数

使用:创建列表

 #创建空列表 list1 = [] #创建带有元素的列表 list2 = [10, 20, 30, 10] print(list2) list3 = list(range(1,10)) list4 = [i for i in range(10)] print(list3) print(list4) 

输出:

[10, 20, 30, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

在列表中元素的数据类型可以不同(灵活性)

 list3 = [33, "good", True, 10.32] print(list3) 

输出:

[33, ‘good’, True, 10.32]

3.列表元素的访问

3.1 列表的取值

功能:访问list列表中元素值

语法:列表名[索引]

 list4 = [22, 33, 12, 32, 45] #下标从0开始,最大值为len(list4)-1 print(list4[0]) 

输出:

22

注意:当索引值大于len(list4)-1的时候,会出现以下错误:

 print(list4[5]) IndexError: list index out of range 

这个错误就是下标越界【下标超出了可表示的范围】

3.2 列表元素的替换

功能:更改列表元素的值

语法:列表名[下标] = 值

 list4 = [22, 33, 12, 32, 45] list4[0] = "hello" print(list4[0]) print(list4) 

输出:

hello
[‘hello’, 33, 12, 32, 45]

4.列表操作

4.1 列表组合

语法: 列表3 = 列表1 + 列表2

 list1 = [1, 2, 3] list2 = ['hello', 'yes', 'no'] list3 = list1 + list2 print(list3) 

输出:

[1, 2, 3, ‘hello’, ‘yes’, ‘no’]

4.2 列表重复

语法: 列表2 = 列表1 * n

 list1 = [1, 2, 3] list2 = list1 * 2 print(list2) 

输出:

[1, 2, 3, 1, 2, 3]

4.3 判断元素是否在列表中

语法:元素 in 列表

若存在则返回True,否则返回False

 list1 = [1, 2, 3] print(1 in list1) 

输出:

True

4.4 列表截取

语法:列表[start: end] 表示获取从开始下标到结束下标的所有元素[start, end)

 list1 = [1, 2, 3, 'hello', 'yes', 'no'] print(list1[2:4]) #若不指定start,则默认从0开始截取,截取到指定位置 #若不指定end,则从指定位置开始截取,截取到末尾结束 

输出:

[3, ‘hello’]

4.5 二维列表

语法:列表 =[列表1,列表2,列表3,… ,列表n]

 #创建二维列表,即列表中的元素还是列表 list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]] 

4.5 二维列表取值

语法:列表名[下标1][下标2]

注意:下标1代表第n个列表(下标从0开始),下标2代表第n个列表中的第n个元素

 list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]] print(list1[0][0]) 

输出:

1

5.列表的方法

5.1 list.append(元素/列表)

功能:在列表中末尾添加新的元素【在原本的列表中追加元素】

注意:append()中的值可以是列表也可以是普通元素

 >>> list1 = [3, 4, 6] >>> list1.append(6) >>> print(list1) [3, 4, 6, 6] 

5.2 list.extend(列表)

功能:在列表的末尾一次性追加另外一个列表中的多个值

注意:extend()中的值只能是列表/元组[一个可迭代对象],不能是元素。

 >>> list1 = [1,2,3] >>> list2 = [3, 4,5] >>> list1.extend(list2) >>> print(list1) [1, 2, 3, 3, 4, 5] 

5.3 list.insert(下标值, 元素/列表)

功能:在下标处插入元素,不覆盖原本的数据,原数据向后顺延。

注意:插入的数据可以是元素也可以为列表。

 >>> list1 = [1,2,3] >>> list1.insert(1,0) >>> print(list1) [1, 0, 2, 3] >>> list1.insert(1,[2, 4, 8]) >>> print(list1) [1, [2, 4, 8], 0, 2, 3] 

5.4 list.pop(下标值)

功能:移除列表中指定下标处的元素(默认移除最后一个元素),并返回移除的数据。

 >>> list1 = [1, [2, 4, 8], 0, 2, 3] >>> list1.pop() 3 >>><a style="color:transparent">来源gao($daima.com搞@代@#码网</a> print(list1) [1, [2, 4, 8], 0, 2] >>> list1.pop(2) 0 >>> print(list1) [1, [2, 4, 8], 2] 

5.5 list.remove(元素)

功能:移除列表中的某个元素第一个匹配结果

 list1 = [1, 2,3,2,4] list1.remove(2) print(list1) 

输出:

[1, 3, 2, 4]

5.6 list.clear()

功能:清除列表中所有的数据

 >>> list1 = [1, 2, 3] >>> list1.clear() >>> print(list1) [] 

5.7 list.index(元素[, start][, stop])

功能:从指定的范围的列表中找出某个值第一匹配的索引值

若不指定范围,则默认是整个列表。

 >>> list1 = [1, 2, 3] >>> list1.index(2) 1 >>> list1.index(4) Traceback (most recent call last): File "", line 1, in  ValueError: 4 is not in list 

注意:若在列表中找不到这个元素,则会报错。

5.8 list.count(元素)

功能:查看元素在列表中出现的次数

 >>> list1 = [1, 2, 3, 1] >>> list1.count(1) 2 

5.9 len(list)

功能: 获取元素个数

 >>> list1 = [1, 2, 3, 1] >>> len(list1) 4 

5.10 max(list)

语法:获取列表中的最大值,元素是不同的数据类型时不能使用

 >>> list1 = [1, 2, 3, 1] >>> max(list1) 3 

5.11 min(list)

语法:获取列表中的最小值,元素是不同的数据类型时不能使用

 >>> list1 = [1, 2, 3, 1] >>> min(list1) 

5.12 list.reverse()

语法: 列表倒叙,直接修改原列表,返回值为None。

 >>> list1 = [1, 2, 3, 1] >>> list1.reverse() >>> print(list1) [1, 3, 2, 1] 

5.13 list.sort()

语法:列表排序 默认升序,元素是不同的数据类型时不能使用

 >>> list1 = [1, 2, 3, 1] >>> list1.sort() >>> print(list1) [1, 1, 2, 3] 
 #倒序 list1 = [1, 2,3,2,4] list1.sort(reverse=False) print(list1) 

输出:

[1, 2, 2, 3, 4]

5.14 浅拷贝

语法:

 list1 = [1, 2, 3] ​list2 = list1 
 >>> list1 = [1, 2, 3, 1] >>> list2 = list1 >>> print(list2) [1, 2, 3, 1] >>> print(id(list1)) 4314476424 >>> print(id(list2)) 4314476424 
 list1 = [1, 2,3,2,4] list2 = list1 list2[0] = 0 print(list1) 

输出:

[0, 2, 3, 2, 4]

注意:浅拷贝为引用拷贝,类似于快捷方式。

浅拷贝中一个变量发生改变,另一个也相应发生改变,

5.15 深拷贝

语法:

 list1 = [1, 2, 3] ​list2 = list1.copy() 

方式2:

 list2 = list1[:] >>> list1 = [1, 2, 3, 1] >>> list2 = list1.copy() >>> print(list2) [1, 2, 3, 1] >>> print(id(list2)) 4314525320 >>> print(id(list1)) 4314524808 
 list1 = [1, 2,3,2,4] list2 = list1[:] print(list2) print(id(list1)) print(id(list2)) 

输出:

[1, 2, 3, 2, 4]
2485711112520
2485710239496

注意:深拷贝为内存拷贝,开辟了新的内存空间

5.16 list(元组)

功能:将元组转为列表

 >>> list1 = list((1, 2, 3, 4)) >>> print(list1) [1, 2, 3, 4] 

6.列表的遍历

6.1 使用for循环遍历列表

语法:

for 变量名 in 列表 :
​ 语句

功能:for循环主要用于遍历列表

遍历:指的是依次访问列表中的每一个元素,获取每个下标对应的元素值

说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止

 >>> list1 = ['hello', 78, '你好', 'good'] >>> for item in list1: ...   print(item) ... hello 78 你好 good 

6.2 使用while循环遍历列表[使用下标循环]

语法:

下标 = 0
while 下标 <列表的长度:
​ 语句
​ 下标 += 1

 >>> list1 = ['hello', 78, '你好', 'good'] >>> index = 0 >>> while index <len(list1): ...   print(list1[index]) ...   index += 1 ... hello 78 你好 good 

6.3 同时遍历下标与元素

语法:

for 下标,变量 in enumerate(列表)
​ 语句

 >>> list1 = ['hello', 78, '你好', 'good'] >>> for index,item in enumerate(list1): ...   print(index, item) ... 0 hello 1 78 2 你好 3 good 

enumerate()[枚举]函数用于一个可遍历的数据对象(如列表,元组或者字符串)组合为一个索引序列,同时列出数据与数据下标,一般使用在for循环中
enumerate(obj, [start =0])
obj:一个可迭代对象
start:下标起始位置

7、List转dict

 list1=[('a',1),('b',2),('c',3)] dict1={k:v for k,v in list1} dict2={v:k for k,v in list1} print(dict1) print(dict2) 

输出:

{‘a’: 1, ‘b’: 2, ‘c’: 3}
{1: ‘a’, 2: ‘b’, 3: ‘c’}

8、切片

8.1 一个冒号

 list1=['a','b','c','d','e'] print('获取全部:',list1[:]) print('去头去尾:',list1[1:-1]) print('取[2,4)',list1[2:4]) 

输出:

获取全部: [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
去头去尾: [‘b’, ‘c’, ‘d’]
取[2,4) [‘c’, ‘d’]

冒号后面没有值则默认为list1的长度。

8.2两个冒号

冒号后面是步长,切片的步长默认为1,不可为0。

 list1=['a','b','c','d','e'] print('获取全部:',list1[::]) print('列表倒置:',list1[::-1]) print('从下标0开始,步长为2',list1[::2]) print('从下标1开始,步长为2',list1[1::2]) 

输出:

获取全部: [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
列表倒置: [‘e’, ‘d’, ‘c’, ‘b’, ‘a’]
从下标0开始,步长为2 [‘a’, ‘c’, ‘e’]
从下标1开始,步长为2 [‘b’, ‘d’]

常用的是list1[::-1],列表倒置。

更多Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

以上就是Python数据类型之List列表实例详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python数据类型之List列表实例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址