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

colors = [‘RED’,‘GREEN’,‘BLUE’,‘YELLOW’]
bools = [True,False,True,True,False]

包含其他数据结构类型的数据

list1 = [[2,3],[4,6]]
list2 = [(3,4,2)]
list3 = [{‘name’:‘Alice’},{‘age’:18},{‘性别’:‘女’}]

包含不同数据类型的元素

mixed_list = [11,3.14,‘hello’,True,[3,‘python’],(‘a’,‘b’,‘c’),{‘fruits’:‘banana’}]

使用内置函数list()创建

numbers = list(range(2,8))


## 2.访问列表元素或修改元素


  通过索引可以访问和修改列表元素,索引从`0`开始,同时支持负索引从列表末尾访问列表中的元素。



mixed_list = [11,3.14,‘hello’,True,[3,‘python’],(‘a’,‘b’,‘c’),{‘fruits’:‘banana’}]

通过切片的方式访问列表中的元素

print(mixed_list[0]) # 访问第一元素,输出结果: 11
print(mixed_list[-1]) # 访问末尾的元素,输出结果: {‘fruits’: ‘banana’}
print(mixed_list[2:5]) # 输出结果: [‘hello’, True, [3, ‘python’]]

通过索引还可以修改列表

mixed_list[1] = ‘modify’
print(mixed_list) # 列表中第2个元素值已修改


## 3.列表方法


  列表支持很多方法:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8ae850f53bd6442fb24396cd9c5a10a8.png#pic_center)


### 3.1 list.append(x)


  在列表末尾添加一个元素,相当于 `a[len(a):] = [x]` 



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


### 3.2 list.extend(iterable)


  用可迭代对象的元素扩展列表。相当于`a[len(a):] = iterable`。



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


### 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()
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

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

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

img

img

img

img

img

img

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

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

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

/img_convert/9f49b566129f47b8a67243c1008edf79.png)

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

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

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

img
  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值