【Python基础012】列表的用法

发布时间:2024年01月19日

????????列 表 用 于 存 储 任 意 数目、任意类型的数据集合。在 Python 中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

1、创建列表

? ? ? ? (1)基本语法创建

????????a = []

????????创建整数列表:

a = [1, 2, 3, 4]

????????同一个列表中不仅可以包含相同类型的元素,还可以包含不同类型的值。

????????创建包含不同类型的列表:

a = [1, 2, 'abc', True, 3.14]

????????(2)list()创建

???????? a = list()

????????使用 list()可以将任何可迭代的数据转化成列表。?

a = list() # 创建一个空的列表对象

b = list("hello,world")

print(a)   # []

print(b)   # ['h', 'e', 'l', 'l', 'o', ',', 'w', 'r', 'l', 'd']

????????(3)range()生成列表

????????range([start,] end [,step]

????????其中:

????????start 参数:可选,表示起始数字,默认是 0;

????????end 参数:必选,表示结尾数字;

????????step参数:可选,表示步长,默认为 1。

????????

list(range(1,10))   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

? ? ? ?(4)列表生成式

????????[表达式 for item in 可迭代对象]

?[x for x in range(1,10) if x%2 == 0]   # [2, 4, 6, 8]

2、基本操作

????????(1)添加

????????① append():列表的末尾追加一个新对象,每次只能是添加一个元素

a = [1, 2, 3, 4]

a.append(6)   # [1, 2, 3, 4, 6]

????????② +运算符操作:会创建一个新的列表对象,涉及到大量的复制操作,对于操作大量的元素不建议使用

????????例:List1+List2

a = [1, 2, 3, 4]

b = [5, 6, 7]

a+b    #  [1, 2, 3, 4, 5, 6, 7]

????????③ extend():将将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象,可添加一个列表或者一个元素

a = [1, 2, 3, 4]

b = [5, 6, 7]

a.extend(b)  # [1, 2, 3, 4, 5, 6, 7]

a.extend('8')  # [1, 2, 3, 4, 5, 6, 7, '8']

????????④ insert():将指定的元素插入到列表对象的任意指定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。

a = [1, 2, 3, 4]

a.insert(2, 10)? # 在列表a的索引2处插入元素10   # [1, 2, 10, 3, 4]

????????(2)查找

????????① 通过索引直接访问元素

????????序列中的所有元素都是有索引的,编号从0 开始递增,最大到列表的长度减1。序列中的所有元素都可以通过索引访问。其中超出索引范围,会抛出异常。

a = [1, 2, 3, 4]
 
a[0] # 获取列表a中索引为0的元素,即列表中第1个元素  1

a[-1] # 获取列表a中索引为-1的元素,即列表中最后1个元素  4

????????② index()获取指定元素在列表中首次出现的索引

????????语法是:

????????index(value,[start,[end]])

????????其中start,end为指定的搜索范围。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]
 
a.index(20) # 从列表中搜索第一个20的位置  1

a.index(20, 2) # 从列表索引位置2开始往后搜索第一个20的位置  6

a.index(20, 4, 7) # 从列表索引位置4到7这个范围,搜索第一个20的位置   6

????????(3)修改

????????修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

a[0] = ‘dhasaiidas’ # 修改列表a中第一个元素为dhasaiidas   ['dhasaiidas', 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

????????(4)删除

????????① del 删除

????????del 删除列表指定位置的元素。

????????语法格式:del 元素。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

del a[2]   # [1, 20, 4, 10, 30, 20, 50, 30, 3, 5, 1]

????????② pop 删除

????????pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

b=a.pop() # 删除最后一个元素  1

c=a.pop(2) # 删除下标为2的元素  3

????????③ remove 删除

????????删除首次出现的指定元素,若不存在该元素抛出异常。

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

a.remove(20) # 删除列表a中第一次出现的元素20  [1, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

????????(5)乘法

????????列表乘以一个数字n 会生成新的列表,在新的列表中原来的列表将会被重复n 次。

a = [1, 2, 3, 4]

b=a*3 # 返回的值是 将列表a复制了3次   [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

????????乘法的作用为复制的用法还可以使用在字符串上。

????????(6)列表的长度、最大值和最小值

????????len、max和min这三个函数用于返回列表中元素的数量、列表中最大值、列表中的最小值。如果列表中同时包含整数和字符串类型的元素,那么使用max、min 函数就会抛出异常。

3、切片操作

????????切片操作是从列表A 中获取一个子列表B。从A 中获取B,需要指定B 在A 中的开始索引和结束索引,因此,切片操作需要指定两个索引。对于列表的切片操作和字符串类似。切片是Python 序列及其重要的操作,适用于列表、元组、字符串等等。切片的语法格式如下:

????????列表[起始偏移量start : 终止偏移量end [:步长step]]

????????当start, end, step三个值为正数时

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[:]) # 默认从列表的开始到列表结束 ,步长为 1  [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[1:]) # 从列表的索引 1 开始到结束,步长为 1   [20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[:2]) # 从开始到索引 1,步长为 1   [1, 20]

print(a[1:3]) # 从列表索引 1 开始到索引 2,步长为 1  [20, 3]

print(a[1:6:2]) # 从列表索引 1 开始到索引 5,步长为 2   [20, 4, 30]

????????当start, end, step三个值为负数时

a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

print(a[-2:]) # 从列表的倒数第 2 个开始到列表结束  [5, 1]

print(a[-5:-3]) # 从倒数第 5 个开始到倒数第 4 个  [50, 30]

print(a[::-1]) # 从右到左反向提取  [1, 5, 3, 30, 50, 20, 30, 10, 4, 3, 20, 1]

4、常用方法

5、列表遍历

????????列表创建后,可以使用循环进行遍历获取列表中的每个元素。

#for 循环遍历列表
a = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]

for value in a:
    print(value)   
#while 循环遍历列表
my_list = [1, 20, 3, 4, 10, 30, 20, 50, 30, 3, 5, 1]
# 定义变量
index = 0
# 定义变量记录列表元素个数
l = len(my_list)
while index < l:
    # 通过下标索引获取元素
    value = my_list[index]
    print(value)
    index+=1

6、 enumerate()函数

????????enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for 循环当中。enumerate() 方法的语法格式如下所示:

????????enumerate (sequence,[start=0])

????????其中sequence 表示一个序列、迭代器或其他支持迭代对象;start 表示下标起始位置。

seq = ['one', 'two','three']

for i, element in enumerate(seq):

    print(i,element)

# 0 one
# 1 two
# 2 three

文章来源:https://blog.csdn.net/m0_46489757/article/details/135686691
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。