Python数据结构: 列表(List)详解_python 列表


### 3.3 list.insert(i, x)


  在指定位置插入元素。第一个参数是插入元素的索引,因此,`a.insert(0, x)`在列表开头插入元素,`a.insert(len(a), x)` 等同于 `a.append(x)` 



fruits = [‘apple’, ‘banana’, ‘orange’]
fruits.insert(0,‘pear’) # 在开头插入
fruits.insert(len(fruits),‘cherries’)# 在末尾插入
print(fruits)# 输出 [‘apple’, ‘banana’, ‘orange’, ‘pear’, ‘cherries’]


### 3.4 list.remove(x)


  从列表中删除第一个值为`x` 的元素。未找到指定元素时,触发 `ValueError` 异常。



fruits = [‘apple’, ‘banana’, ‘orange’]
fruits.remove(‘orange’)
print(fruits) # 输出 [‘apple’, ‘banana’]
fruits.remove(‘pear’) #未找到指定元素时,触发 ValueError 异常
print(fruits)


  运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ebdcfd35d71d4b5dbd90bf87484a9c1d.png#pic_center)


### 3.5 list.pop([i])


  删除列表中指定位置的元素,并返回被删除的元素。未指定位置时,`a.pop()`删除并返回列表的最后一个元素。(方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。)



fruits = [‘apple’, ‘banana’, ‘orange’,‘pear’]
remove_fruit = fruits.pop(2)
print(remove_fruit)# 输出 orange
print(fruits)# 输出 [‘apple’, ‘banana’, ‘pear’]


### 3.6 list.clear()


  删除列表里的所有元素,相当于`del a[:]` 。



fruits = [‘apple’, ‘banana’, ‘orange’,‘pear’]
fruits.clear()
print(fruits)# 输出 []


### 3.7 list.index(x[, start[, end]])


  返回列表中第一个值为 `x` 的元素的零基索引。未找到指定元素时,触发 `ValueError` 异常。  
   可选参数`start`和 `end`是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 `start` 参数。



fruits = [‘apple’, ‘banana’, ‘orange’,‘pear’,‘cherries’,‘grape’]
index_banana = fruits.index(‘banana’) #
print(f"Index of ‘banana’: {index_banana}")

index_pear = fruits.index(‘pear’,2) # 从索引2开始查找
print(f"Index of ‘pear’: {index_pear}")

index_orange = fruits.index(‘orange’,1,4) # 在索引1到4之间查找
print(f"Index of ‘pear’: {index_pear}")

index_orange1 = fruits.index(‘orange’,3,4) # 错误索引查找


  运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6bdb1df55c464fb28b1e02f586b03358.png#pic_center)


### 3.8 list.count(x)


  返回列表中元素`x` 出现的次数。



fruits = [‘apple’, ‘banana’, ‘orange’,‘pear’,‘cherries’,‘grape’,‘apple’,‘apple’]
count_apple = fruits.count(‘apple’)
print(f’苹果在列表中出现了{count_apple}次’)


### 3.9 list.sort(\*, key=None, reverse=False)


  就地排序列表中的元素



fruits = [‘apple’, ‘banana’, ‘orange’,‘pear’,‘cherries’,‘grape’,‘apple’,‘apple’]
fruits.sort()# 按照字母顺序排序
print(fruits) # 输出 [‘apple’, ‘apple’, ‘apple’, ‘banana’, ‘cherries’, ‘grape’, ‘orange’, ‘pear’]

numbers = [4, 2, 1, 3, 5]
numbers.sort()
print(numbers) # 输出: [1, 2, 3, 4, 5]


### 3.10 list.reverse()


  翻转列表中的元素。



fruits = [‘apple’, ‘banana’, ‘orange’,‘pear’]
fruits.reverse()
print(fruits)# 输出 [‘pear’, ‘orange’, ‘banana’, ‘apple’]


### 3.11 list.copy()


  返回列表的浅拷贝。相当于`a[:]`。



fruits = [‘apple’, ‘banana’, ‘orange’]
fruits_copy = fruits.copy()
print(fruits_copy) # 输出: [‘apple’, ‘banana’, ‘orange’]


## 4.列表推导式


### 4.1 语法


  `new_list= [expression for item in iterable if condition]`  
   `expression`是对每个元素进行操作的表达式。  
   `item` 是来自可迭代对象(如列表、字符串等)的元素。  
   `condition` 是可选的条件,用于过滤元素。


### 4.2 示例


#### 1) 基本列表推导式



生成平方数列表

squares = [x**2 for x in range(5)]
print(squares) # 输出: [0, 1, 4, 9, 16]


#### 2) 带条件的列表推导式



生成偶数平方数列表

even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares) # 输出: [0, 4, 16, 36, 64]


#### 3) 字符串操作列表推导式



提取字符串中的数字

string = “Hello 123 Python 456”
numbers = [int(x) for x in string if x.isdigit()]
print(numbers) # 输出: [1, 2, 3, 4, 5, 6]


#### 4) 嵌套列表推导式



生成九九乘法表

multiplication_table = [[i * j for j in range(1, 10)] for i in range(1, 10)]
for l_table in multiplication_table:
print(l_table)

输出: 一个包含九个列表的列表,每个列表表示乘法表的一行


  运行结果:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f6856edbb0444232b5a6dc1c1296f2a4.png#pic_center)


#### 5)带条件的嵌套列表推导式
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/5022de48e21922a3aa99fa44f6deff47.png)

![img](https://img-blog.csdnimg.cn/img_convert/3a46807602c30692a82e12d735323011.png)

![img](https://img-blog.csdnimg.cn/img_convert/9829e4f4c8e5a73c0e5c113a1bc5b403.png)

![img](https://img-blog.csdnimg.cn/img_convert/790e2cfa84f9419be28a946500435784.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/7c7a9343b16cdbc11458b1c1ee3a8b1d.jpeg)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值