本文共 2387 字,大约阅读时间需要 7 分钟。
列表是Python中最基本的数据结构。它是一种可变的序列,可以存储多个有序的元素。简单来说,列表相当于内存中的一个容器,可以用来存储各种数据类型的对象。
要创建一个列表,可以使用方括号 [ ]
。记住,list
是Python中的一个内置函数,而不是函数名。
my_list = []
my_list = [10, 20, 30, 40, 50]
my_list = ['苹果', '香蕉', '桔子']
列表中的元素可以通过索引来访问。索引从0开始,第一个元素是索引0,第二个是索引1,依此类推。
my_list = [10, 20, 30, 40, 50]print(my_list[0]) # 输出10print(my_list[4]) # 输出50
IndexError
异常。要获取列表的长度,可以使用 len()
函数:
my_list = [10, 20, 30, 40, 50]print(len(my_list))
切片是从列表中获取子列表的操作,具有起始位置、结束位置和步长等参数。起始和结束位置可以省略,同样,步长也可以省略。
列表[起始:结束]
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']print(stus[1:]) # 输出从第2个元素开始的所有元素print(stus[:3]) # 输出前3个元素print(stus[:]) # 输出整个列表的副本
print(stus[-1]) # 输出最后一个元素,如 '白骨精'
print(stus[::2]) # 每隔两个元素取一个,输出:['孙悟空', '沙和尚']print(stus[::-1]) # 逆向切片,输出整个列表的逆序
列表支持许多操作和方法,可以改写为通用操作,包括:
my_list = [1, 2, 3] + [4, 5, 6]
my_list = [1, 2, 3] * 5 # my_list 会包含5个 [1,2,3]
append()
方法可以在列表末尾添加一个元素:my_list = [10, 20, 30]my_list.append(40)
insert()
方法可以在指定位置插入一个元素,不会删除或替代现有元素:my_list.insert(2, 100)
extend()
方法可以用一个序列扩展当前列表:my_list = [10, 20, 30]my_list.extend([40, 50])
clear()
方法可以清空列表:my_list = [10, 20, 30]my_list.clear()
pop()
方法可以根据索引删除并返回元素:my_list = [10, 20, 30]result = my_list.pop(2) # 返回30result = my_list.pop() # 返回30
remove()
方法可以删除指定值的元素:my_list = [10, 20, 30, 40]my_list.remove(20)
reverse()
方法可以反转列表:my_list = [10, 20, 30, 40]my_list.reverse()
sort()
方法可以对列表进行排序,默认按升序排列:my_list = [10, 1, 20, 3, 4, 5]my_list.sort(reverse=True) # 降序排列
列表是可变的,可以通过索引直接修改或删除元素,或者通过切片操作。
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']stus[0] = '牛魔王'
del
关键字可以删除索引处的元素:stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']del stus[2]
stus[1:3] = ['牛魔王', '红孩儿', '二郎神']
使用 for
循环可以遍历列表中的所有元素:
stus = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精']for emp in stus: print(emp)
enumerate()
函数来获取每个元素的索引:for index, emp in enumerate(stus): print(f'索引 {index} 对应的元素是 {emp}')
range()
是一个生成自然数序列的函数,可以用来创建索引序列。
r = range(5) # [0, 1, 2, 3, 4]r = range(10, 0, -1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
range()
常用于 for
循环中,例如:for i in range(10): print('数字', i)
这是Python列表的基础知识,希望对您有所帮助!
转载地址:http://bvijz.baihongyu.com/