Python内置数据结构:列表篇:【】,list函数创建。列表创建常见遇到问题,索引,列表增删改查,常用函数,while,for进行列表遍历,列表推导式
介绍:
- 列表
- 元组
- 字典
- 集合
列表: 方括号【】和list函数是列表最常用的两种定义方式。
- 我们暂且称列表内的东西为元素,列表内的元素以逗号分隔开。
- 列表的初始化:空列表,有数值是列表的两种初始化情况。
-
使用方括号创建列表:【】
-
a=[]#创建了一个空列表并将其赋值给了a我们可以称a为一个空列表 print(a)#使用print函数输出打印a #运行结果:[]
-
a=['大香蕉','一条大香蕉','你的感觉真的很奇妙']#创建了一个含有大香蕉,一条大香蕉,你的感觉真的很奇妙的列表并将其赋值给了a我们可以称a为一个含有元素的列表 print(a)#使用print函数输出打印a #运行结果:['大香蕉', '一条大香蕉', '你的感觉真的很奇妙']
-
使用list函数创建列表
-
a=list()#使用list函数创建一个空列表 print(a)#使用print函数打印输出a #运行结果:[]
-
# 使用list函数创建一个含有元素的列表 a = list('大香蕉', '一条大香蕉', '你的感觉真的很奇妙') # 使用print函数打印输出变量a的内容 print(a) # 运行结果: 一片红 报错
运行发现代码报错了。
-
在Python中,
list()
函数的括号内不能直接使用多个字符串作为参数。list()
函数期望的是一个单一的可迭代对象作为参数,而不是多个独立的参数。单一可迭代对象内部可以有多个元素 -
多个元素组成的字符串
-
# 使用list函数创建一个含有元素的列表 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') # 使用print函数打印输出变量a的内容 print(a) # 运行结果:['大', '香', '蕉', '一', '条', '大', '香', '蕉', ',', ' ', '你', '的', '感', '觉', '真', '的', '很', '奇', '妙']
-
单一字符串
-
a = list("hello") # 字符串是可迭代的 print(a) # 输出: ['h', 'e', 'l', 'l', 'o']
-
单一列表
-
a = list([1, 2, 3]) # 列表是可迭代的 print(a) # 输出: [1, 2, 3]
-
单一元组(元组就是小括号里面包含一些元素的一坨东西)
-
a = list((1, 2, 3)) # 元组是可迭代的 print(a) # 输出: [1, 2, 3]
-
多个元素组成的元组
-
a = list((1, 2, 3, 4, 5)) # 元组包含多个元素 print(a) # 输出: [1, 2, 3, 4, 5]
-
多个元素组成的列表
-
a = list([1, 2, 3, 4, 5]) # 列表包含多个元素 print(a) # 输出: [1, 2, 3, 4, 5]
-
多个元素组成的字符串
-
a = list("12345") # 字符串包含多个字符 print(a) # 输出: ['1', '2', '3', '4', '5']
-
查:对列表元素进行访问
-
索引:索引通常从0开始(正),表示元素在序列中的位置。
-
访问第一个元素
-
# 使用list函数创建一个含有元素的列表 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') # 访问列表的第一个元素 first_element = a[0]#右边访问了创建列表的第一个元素()索引从0开始,然后赋值给左边 print(first_element) # 输出: 大 #打印输出前面被赋值后的元素
-
访问最后一个元素
-
# 使用list函数创建一个含有元素的列表 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') # 访问列表的最后一个元素 last_element = a[-1] print(last_element) # 输出: 妙
-
访问特定位置元素
-
# 使用list函数创建一个含有元素的列表 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') # 访问列表中索引为5的元素 fifth_element = a[5] print(fifth_element) # 输出: 大
-
使用切片操作
- 切片是Python中用于提取序列子集的一种操作,可以通过指定起始索引、结束索引(不包含)和步长(步长是指定在切片操作中每次跳过多少个元素来选取序列中的下一个元素。
)来定制化访问序列中的元素。 -
# 使用list函数创建一个含有元素的列表 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') # 使用切片访问列表第2个索引到第7个索引(包括第2个,不包括第8个) elements_slice = a[2:8] # 注意:切片的结束索引是不包含的,也就是8 print(elements_slice) # 输出: ['蕉', '一', '条', '大', '香', '蕉']
注意这里指的是索引的位置
-
前面部分地方的解释:
- 注意在‘你’这个字前面有一个空格所以运行时把这个空格也加上了引号另外逗号也加上了引号。(抱歉没注意到)
-
函数总结:
-
增:append()在列表末尾添加元素
-
语法:list.append(element) list:要添加元素的列表。 element:要添加到列表末尾的元素。
-
a = [1, 2, 3] a.append(4) print(a) # 输出: [1, 2, 3, 4]
-
增:insert()在指定位置插入元素
-
语法:list.insert(index, element) list:要插入元素的列表。 index:插入元素的索引位置。 element:要插入的元素。 说明: insert() 方法在列表的指定位置插入一个元素。列表中原来的元素会向后移动。
-
a = [1, 2, 4] a.insert(2, 3) print(a) # 输出: [1, 2, 3, 4]
-
删:remove()删除指定元素
-
语法:list.remove(element) list:要删除元素的列表。 element:要删除的元素。 说明: remove() 方法删除列表中第一个匹配的元素。如果元素不存在于列表中,会抛出 ValueError。
-
a = [1, 2, 3, 4] a.remove(2) print(a) # 输出: [1, 3, 4]
-
删:pop()删除并返回指定位置的元素(默认是最后一个)
-
语法:list.pop([index]) list:要删除元素的列表。 index:(可选)要删除元素的索引。默认为 -1,即列表的最后一个元素。 说明: pop() 方法删除列表中指定位置的元素,并返回该元素。如果不指定索引,默认删除并返回列表的最后一个元素。
-
a = [1, 2, 3, 4] last_item = a.pop() print(a) # 输出: [1, 2, 3] print(last_item) # 输出: 4
-
删:clear()清空列表
-
语法:list.clear() list:要清空的列表。 说明: clear() 方法移除列表中的所有元素,使列表变为空列表。
-
a = [1, 2, 3, 4] a.clear() print(a) # 输出: []
-
删:del()删除列表或列表中的元素
-
语法:del list 或 语法:del list[index] list:要删除的列表或要删除元素的列表。 index:(可选)要删除元素的索引。
-
a = [1, 2, 3, 4] del a[2] # 删除索引为2的元素 print(a) # 输出: [1, 2, 4] del a # 删除整个列表 # print(a) # 这将引发错误,因为a已经被删除
-
复制:copy函数
-
# 定义包含“大香蕉”字符串的列表 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') # 使用copy()方法创建列表a的一个副本 b = a.copy() # 打印副本列表b的内容 # 结果:['大', '香', '蕉', '一', '条', '大', '香', '蕉', ',', ' ', '你', '的', '感', '觉', '真', '的', '很', '奇', '妙'] print(b)
-
改:列表元素的修改
-
修改列表中的元素非常简单,你只需要通过索引来访问并赋新值即可:
-
#定义一个列表a a = ["大香蕉", "小苹果", "红草莓"] # 打印列表a print("列表:",a) #列表: ['大香蕉', '小苹果', '红草莓'] # 修改列表中的第一个元素为“超大香蕉” a[0] = "超大香蕉" # 打印修改后的列表 print("修改后的列表:", a) #修改后的列表: ['超大香蕉', '小苹果', '红草莓']
-
reverse():将列表中顺序颠倒
-
# 定义列表 a = ["大香蕉", "小苹果", "红草莓"] # 查看逆置前的状态 print("原始列表:", a)#打印结果:原始列表: ['大香蕉', '小苹果', '红草莓'] # 使用 reverse() 逆置列表 # reverse() 直接修改原列表,不会创建新列表 # 将列表中的元素顺序颠倒,第一个元素会变成最后一个,以此类推 a.reverse() # 查看逆置后的状态 print("逆置后的列表:", a)#打印结果:逆置后的列表: ['红草莓', '小苹果', '大香蕉']
-
index函数(列表中找出第一个指定值的索引)
- 返回指定元素在列表中首次出现的索引。如果元素不存在于列表中,它将抛出一个
ValueError
异常。 -
my_list = [1, 2, 3, 4, 5] # 查找元素 3 的索引 a= my_list.index(3) # 返回 2,因为列表索引从 0 开始 print(a) # 输出 2
-
列表遍历:
-
使用for循环遍历:
-
my_list = [1, 2, 3, 4, 5] #创建一个列表 for item in my_list: # 使用for循环遍历列表 print(item) '''结果: 1 2 3 4 5'''
-
while遍历列表:
-
# 使用list函数创建一个含有元素的列表,这里是“大香蕉”字符串 a = list('大香蕉一条大香蕉, 你的感觉真的很奇妙') i = 0# 初始化索引变量i # 使用while循环遍历列表 while i < len(a): #len()函数用于返回列表中元素的数量 # 打印当前索引的元素 print(a[i]) # 更新索引,移动到下一个元素 i += 1 ''' 大 香 蕉 一 条 大 香 蕉 , 你 的 感 觉 真 的 很 奇 妙 '''
-
列表推导式:
-
#无条件的列表推导式 a=[1,2,3,4,5] b=[x**2 for x in a] print(b)#运行结果:[1, 4, 9, 16, 25] #有条件的列表推导式 #照着敲敲完就懂了 a=[1,2,3,4,5] b=[x for x in a if x %2 ==0] print(b)#结果;[2, 4] #应用复杂函数 a=["apple","banana","cherry","date"] b=[len(fruit) for fruit in a] print(b)#[5, 6, 6, 4] #嵌套列表 a=[1,2,3,4,5] b=[[x**2 for x in [x]]for x in a] print(b) # 输出: [[1], [4], [9], [16], [25]]'''