Python 列表List 整理

目录

为什么需要列表

列表特点

列表示意图

创建列表

使用中括号创建

使用内置函数创建

内存示意图

删除列表

查询操作

获取单个元素

获取指定元素索引

全列表查找

指定位置查找

获取列表多个元素

切片的范围

Step设定

Step为正数

Step为负数

判断元素是否存在

列表元素的遍历

增加元素

Append

Extend

Insert

切片

修改元素

修改索引

切片

排序

列表sort方法

内置函数sorted

删除元素

Remove

Pop

clear

列表生成式

总结


为什么需要列表

1.变量可以存储一个元素,而列表是一个‘大容器’可以存储N多个元素,

程序可以方便的对这些数据进行整体操作;

2.列表相当于其他语言中的数组。

列表特点

列表元素按顺序有序排序

索引映射唯一个数据

列表可以存储重复数据

任意数据类型混存

根据需要动态分配和回收内存

列表示意图

创建列表

列表需要使用中括号[],元素之间使用英文的逗号进行分隔。

使用中括号创建

使用中括号创建列表,数据内容有字符串、数字、元组类型,其中还有重复的数据。

示例如下:

list1 = ['zhangsan', '张三', 1, 1, ('lisi', 2)]
print(list1)
print(type(list1))

# 执行结果
# ['zhangsan', '张三', 1, 1, ('lisi', 2)]
# <class 'list'>

使用内置函数创建

使用内置函数list()把元组数据转化为list。

示例如下:

list2 = list((1, 'zhangsan', 'lisi'))
print(list2)
print(type(list2))

# 执行结果
# [1, 'zhangsan', 'lisi']
# <class 'list'>

内存示意图

列表中存储的并不是数据,而是数据的引用。

删除列表

删除列表操作使用del方法,删除后不可再访问该列表。

示例如下:

list3 = [1, 2, 3, 4]
print(list3)

del list3
print(list3)

执行结果

[1, 2, 3, 4]
Traceback (most recent call last):
  File "E:\lianxipy\day3\列表.py", line 25, in <module>
    print(list3)
NameError: name 'list3' is not defined

查询操作

获取单个元素

可以通过指定索引(正向或逆向),获取相对应的元素。

注意:如果指定索引不存在元素,则抛出indexError异常类型。

示例如下:

list4 = [1, '张三', 'lisi', 'lisi']
print(list4[0])
print(list4[-1])
print(list4[-4])

# 执行结果
# 1
# lisi
# 1

可以看到通过指定索引0和-4获取的都是第一个列表值。

获取指定元素索引

使用列表的index函数,可以查找指定元素位于列表中的索引值,

只返回第一个符合的索引值;

但是如果不存在,则会抛出ValueError异常。

全列表查找

示例如下:

list4 = [1, '张三', 'lisi', 'lisi']
print(list4.index('lisi'))

# 执行结果
# 2

指定位置查找

指定位置查找是指,在使用index函数时指定起始和终止查找范围。

示例如下:

list4 = [1, '张三', 'lisi', 'lisi', 'lisi']
print(list4.index('lisi', 3, 4))

# 执行结果
# 3

从索引3(包含3)开始查找  查找到索引4(不包含4)。

获取列表多个元素

是一种通过切片形式来获取多个元素,具体格式为:列表名[start:stop:step]

返回结果为原列表相应片段的拷贝。

切片的范围

start 起始位置,可以与stop组合使用也可以单独使用

stop 终结位置,可以与start组合使用也可以单独使用

示例如下:

list4 = [1, '张三', 'lisi', 'lisi', 'lisi']
# 单独使用stop 表示从start(包含start位置)到最后
list4_1 = list4[1:]
print(list4_1)  # ['张三', 'lisi', 'lisi', 'lisi']

# 单独使用stop 表示从开始到stop (不包含stop位置) 为止
list4_2 = list4[:3]
print(list4_2) # [1, '张三', 'lisi']

# 组合使用  表示从start(包含start位置)到stop (不包含stop位置) 为止
list4_3 = list4[1:3]
print(list4_3) # ['张三', 'lisi']

Step设定

step默认为1,也就是不设置的情况下是1。

Step为正数

切片的第一个元素默认是列表的第一个元素。

示例如下:

list4 = [1, '张三', 'lisi', 'lisi', 'lisi']
# step为正数
print(list4[:3:2])  # 从0开始取到3为止,步长为2,结果为:[1, 'lisi']
print(list4[1:3:2]) # 从1开始取到3为止,步长为2,结果为:['张三']
print(list4[1::2])  # 从1开始取到最后,步长为2,结果为:['张三', 'lisi']

Step为负数

切片的第一个元素默认是列表的最后一个元素。

示例如下:

list4 = [1, '张三', 'lisi1', 'lisi2', 'lisi3']
print(list4[:-3:-1])   
# 从列表最后一个元素开始到-3(倒数第三个)为止,步长为1,结果为:['lisi3', 'lisi2']
print(list4[-1:-4:-1]) 
# 从列表最后一个元素开始到-4(倒数第四个)为止,步长为1,结果为:['lisi3', 'lisi2', 'lisi1']
print(list4[-2::-1])   
# 从列表倒数第二个元素开始到第一个元素为止,步长为1,结果为:['lisi2', 'lisi1', '张三', 1]

判断元素是否存在

使用in 与 not in 来判断指定元素在列表中是否存在,返回布尔值。

示例如下:

list5 = [1, 2, 3, 'zhang', 'san', 'li']
print(1 in list5)
print('zhang' not in list5)

# 执行结果
# True
# False

列表元素的遍历

遍历在列表的使用中经常出现,

格式:

for 迭代变量 in 列表名:
   具体操作

下面是如何遍历。

示例如下:

for i in list5:
    print(i)

# 执行结果
# 1
# 2
# 3
# zhang
# san
# li

增加元素

Append

在列表的末尾添加一个元素

示例如下:

list6 = [1]

# append
list6.append('end')
print(list6)

# 执行结果
# [1, 'end']

Extend

在列表的末尾至少添加一个元素。可使用字典、列表、元组、字符串等格式作为参数添加,

当以字符串参数添加时,会以单个字母形式添加入列表(认为是多个)

示例如下:

list6 = [1]
list6.extend({'end1'})
list6.extend(['end2'])
list6.extend(('end3',))
list6.extend('end4')
print(list6)

# 执行结果
# [1, 'end1', 'end2', 'end3', 'e', 'n', 'd', '4']

Insert

在列表的任意位置添加一个元素

示例如下:

list6 = [1]
list6.insert(0, 'zhangsan')
print(list6)
list6.insert(4, 'lisi')
print(list6)

# 执行结果
# ['zhangsan', 1]
# ['zhangsan', 1, 'lisi']

切片

在列表的任意位置添加至少一个元素。可以说是添加,也算是修改。

示例如下:

print('原列表:', list6)
list6[:1] = [1, 2, 3]
print(list6)

# 执行结果
# 原列表: [1]
# [1, 2, 3]

修改元素

修改索引

为指定索引的元素赋予一个新值。

示例如下:

list7 = [1, 2, 3]
print('原列表:', list7, id(list7))
list7[0] = 100
print(list7, id(list7))

# 执行结果
# 原列表: [1, 2, 3] 2666522038856
# [100, 2, 3] 2666522038856

可以看出在修改后列表id并未发生改变,还是原来的列表,只是值发生了改变。

切片

为指定的切片赋予一个新值。

示例如下:

list7 = [1, 2, 3]
print('原列表:', list7, id(list7))
list7[2:3] = [100, 110]
print(list7, id(list7))

# 执行结果
# 原列表: [1, 2, 3] 2110356345416
# [1, 2, 100, 110] 2110356345416

通过切片修改,把原来的第三个元素修改为100并添加了110。

排序

常见的两种方式来实现排序。

需要注意:排序的列表中不能是混合类型的即数字和字符串混合,必须是同样类型的,否则无法比较会抛出TypeError.

列表sort方法

调用sort()方法,列表中的所有元素默认按照从大到小的顺序进行排序,可以指定reverse=True,进行降序排序。

示例如下:

list8 = [3, 4, 1, 4, 2, 0]
list9 = ['b', 'a', 'f', 'e']
# sort方法
print('原列表:', list8, id(list8))
list8.sort()
print(list8, id(list8))
# 降序
list8.sort(reverse=True)
print(list8, id(list8))

print('原列表:', list9, id(list9))
list9.sort()
print(list9, id(list9))
# 降序
list9.sort(reverse=True)
print(list9, id(list9))

执行结果:

原列表: [3, 4, 1, 4, 2, 0] 2399479616072
[0, 1, 2, 3, 4, 4] 2399479616072
[4, 4, 3, 2, 1, 0] 2399479616072
原列表: ['b', 'a', 'f', 'e'] 2399479616584
['a', 'b', 'e', 'f'] 2399479616584
['f', 'e', 'b', 'a'] 2399479616584

使用列表的sort函数是对原列表进行正序和倒序排序,直接修改了原列表。

内置函数sorted

调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变。

示例如下:

list8 = [3, 4, 1, 4, 2, 0]
# 内置函数sorted
print('原列表:', list8, id(list8))
list8_1 = sorted(list8)
print(list8_1, id(list8_1))
# 降序
list8_2 = sorted(list8, reverse=True)
print(list8_2, id(list8_2))

print('原列表:', list8)

执行结果:

原列表: [3, 4, 1, 4, 2, 0] 2839586820680
[0, 1, 2, 3, 4, 4] 2839586821192
[4, 4, 3, 2, 1, 0] 2839587379080
原列表: [3, 4, 1, 4, 2, 0]

可以看出使用内置函数sorted是对原列表排序后,创建了新的列表,

原列表并没有发生改变。

删除元素

Remove

删除列表中的某个元素,当元素不存在时,会抛出ValueError异常

示例如下:

list10 = [1, 2, 3, 4, 5]
print('原列表:', list10)

# 删除列表中的元素
list10.remove(2)
print(list10)

# 执行结果
# 原列表: [1, 2, 3, 4, 5]
# [1, 3, 4, 5]

Pop

抛出最后一个元素 并返回被删除的元素。

示例如下:

list10 = [1, 2, 3, 4, 5]
print('原列表:', list10)
print(list10.pop())
print(list10.pop())
print(list10)

# 执行结果
# 5
# 4
# [1, 2, 3]

clear

清空列表内容。

示例如下:

list10.clear()
print(list10)

# 执行结果
# 原列表: [1, 2, 3, 4, 5]
# []

列表生成式

列表生成式是“生成列表的公式”的简称。

语法格式:[元素表达式 for 自定义变量 in 可迭代对象]

示例如下:

list11 = [x for x in range(1, 10)]
print(list11)
list12 = [x*2 for x in range(1, 10)]
print(list12)

# 执行结果
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
# [2, 4, 6, 8, 10, 12, 14, 16, 18]

注意:表示列表元素的表达式中需要包含自定义变量

总结

对python 列表数据类型内容进行了整理,包含使用列表原因、特点,创建列表和增删改查及排序操作。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python基础知识整理包括以下几个方面: 1. 数据类型:Python中常见的数据类型有整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple)、字典(dict)等。 2. 变量和赋值:在Python中,可以使用变量来保存数据,并使用赋值语句将值赋给变量。变量名可以由字母、数字和下划线组成,但不能以数字开头。 3. 运算符:Python支持常见的算术运算符(如加减乘除)、比较运算符(如等于、大于、小于等)、逻辑运算符(如与、或、非)等。 4. 控制流程:Python中的控制流程包括条件语句(if-else)、循环语句(while和for)以及跳转语句(break和continue)等。 5. 函数和模块:函数是一段可重复使用的代码块,可以通过函数来组织代码和实现代码的复用。而模块是一个包含了函数、类和变量的文件,可以通过import语句导入并使用。 6. 异常处理:在编写程序时,可能会出现错误,为了避免程序崩溃,可以使用异常处理机制来捕捉和处理错误,保证程序的正常执行。 7. 文件操作:Python提供了丰富的文件操作函数,可以读取和写入文件内容,以及对文件进行其他操作。 8. 面向对象编程:Python是一种面向对象的编程语言,支持类和对象的概念,可以通过定义类来创建对象,并使用对象调用类中的方法和属性。 这些是Python基础知识的主要内容,希望对你有所帮助。如果你有具体的问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值