Python列表详解

目录

1、列表

2、创建列表

3、查询

3.1、依据下标查询元素

3.2、依据元素查找下标

4、列表中元素的增、删、改

4.1、添加元素

4.2、删除元素

4.3、修改元素

5、对列表中的元素排序


1、列表

        数据类型list,ist是python内置的一种高级数据类型。list是一种有序的集合,基于链表实现。在python中应用很广泛。

        Python列表是一个有序的集合,可以包含任何类型的对象,包括数字、字符串、其他列表等。以下是一些Python列表的主要性质:

  • 可变性:Python列表是可变的,这意味着你可以更改、添加或删除列表中的元素。
  • 有序性:在Python中,列表是有序的。这意味着列表中的元素按照它们被添加的顺序存储。
  • 动态性:你可以在运行时向列表添加或删除元素,使其非常适合用于需要动态存储数据的场景。
  • 嵌套性:列表可以包含其他列表作为元素,形成嵌套列表(或称二维或多维列表)。
  • 内置方法:Python列表有许多内置方法,可以用来操作和修改列表,例如添加元素、删除元素、排序等。
  • 切片:Python列表支持切片操作,可以提取或修改列表的一部分。
  • 与for循环兼容:Python的for循环可以遍历列表中的所有元素。
  • 可与数学运算符交互:大多数数学运算符(如+,-*,等)都可以在列表上使用,可以进行合并、删除或重复操作。

2、创建列表

        在Python中,列表是一种数据类型,可以存储多个项目(可以是任何类型的数据,如整数、字符串、其他列表等)。

#利用[]创建列表
lst1=['hello','world','!']
#利用list()
lst2=list(['hello','world','!'])
#创建不同元素类型的列表
lst3=[9,3,'normal']
#列表也可以作为列表的元素
lst4=[[1,2,3],4,5,6]
#列表可以为空
lst5=[]

3、查询

3.1、依据下标查询元素

        查询元素同其他语言的数组相同,但是注意列表和字符串相同有两种序号体系:正向递增序列和反向递减序列。如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。

        

lst6=list(['hello','world','!'])
#第一个元素
print(lst6[0])
#第二个元素
print(lst6[1])
#利用反向
#最后一个元素
print(lst6[-1])

        请注意,Python的列表索引不会越界。如果你尝试访问超出列表长度的索引(例如,lst[5]),Python将抛出一个IndexError

        如果你想查询的元素不在列表中,但你知道它应该在某个特定位置,你可以使用in运算符来检查。例如:

        

lst6=list(['hello','world','!'])
if 'world' in lst6:
    print('\'world\''+'在lst6中')
else:
    print('不存在')

3.2、依据元素查找下标

        在Python中,你可以使用index()方法来查找特定元素在列表中的位置(也就是下标)。这个方法会返回元素在列表中首次出现的位置。如果元素不在列表中,Python会抛出一个ValueError

下面是一个例子

lst7=[1,2,3,4,2,1]
#查找1的下标
print(lst7.index(1))
#查找3的下标
print(lst7.index(3))
#越界的情况下
print(lst7.index(10))
#结果
#0
#2
#ValueError: 10 is not in list

4、列表中元素的增、删、改

4.1、添加元素

  • append(item):在列表的末尾添加一个元素。
  • insert(index, item):在指定的位置插入一个元素。

示例

lst7=[1,2,3,4,2,1]
#在尾部添加
lst7.append(2)
print(lst7)
#在指定位置添加
lst7.insert(2,5)#(指定位置,要添加的元素)
print(lst7)

4.2、删除元素

  • remove(item):删除列表中第一个匹配的元素。
  • pop(index):删除并返回指定位置的元素。如果没有指定索引,则默认删除最后一个元素。
  • del语句:根据索引删除指定位置的元素。

示例

lst7=[1,2,3,4,2,1]
#删除value为1的元素
lst7.remove(1)
print(lst7)
#pop()
lst7.pop()
print(lst7)
#del
del lst7[0]
print(lst7)
#结果
#[2, 3, 4, 2, 1]
#[2, 3, 4, 2]
#[3, 4, 2]

4.3、修改元素

        直接对列表中的某个位置赋值即可修改该位置的元素。

lst=[1,2,3]
#将第一个元素改为0
lst[0]=0
#结果[0,2,3]

5、对列表中的元素排序

在Python中,对列表的元素进行排序主要有两种方法:sort()方法和sorted()函数。

  1. sort()方法:该方法会直接修改原始列表,排序后的元素会按照新的顺序在列表中排列。
  2. sorted()函数:该函数会生成一个新的排序后的列表,原始列表不会被改变。
my_list = [3, 1, 4, 1, 5, 9, 2]  
my_list.sort()  
print(my_list)  # 输出: [1, 1, 2, 3, 4, 5, 9]

my_list = [3, 1, 4, 1, 5, 9, 2]  
sorted_list = sorted(my_list)  
print(sorted_list)  # 输出: [1, 1, 2, 3, 4, 5, 9]  
print(my_list)  # 输出: [3, 1, 4, 1, 5, 9, 2] (原始列表保持不变)

默认排序是按照升序(从小到大)进行,如果你想按照降序(从大到小)排序,可以设置参数reverse=True。
对于包含其他数据类型的列表,例如包含元组的列表,你可以提供一个key函数来指定排序的依据。例如,如果你想根据元组的第二个元素进行排序:

my_list = [3, 1, 4, 1, 5, 9, 2]  
my_list.sort(reverse=True)  
print(my_list)  # 输出: [9, 5, 4, 3, 2, 1, 1]


my_list = [(1, 2), (3, 1), (4, 2)]  
my_list.sort(key=lambda x: x[1])  
print(my_list)  # 输出: [(3, 1), (1, 2), (4, 2)]
6、列表的切片

        在Python中,列表的切片非常方便且实用,可以用来获取列表的一部分,或者修改列表的一部分。

# 创建一个列表  
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
  
# 使用切片获取列表的前5个元素  
first_five = my_list[:5]  # 结果是 [0, 1, 2, 3, 4]  
  
# 使用切片获取列表的后5个元素  
last_five = my_list[5:]  # 结果是 [5, 6, 7, 8, 9]  
  
# 使用切片获取从第3个元素到第7个元素(不包括第7个元素)的元素  
middle_five = my_list[2:7]  # 结果是 [2, 3, 4, 5, 6]  
  
# 修改切片所获取的元素  
my_list[2:7] = [10, 11, 12, 13, 14]  # 现在 my_list 是 [0, 1, 10, 11, 12, 13, 6, 7, 8, 9]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值