最新P叔带你学Python-3-列表及其操作_python3 列表,各种风格的Python面试题进来了解一下

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


修改列表元素:可以通过索引来修改列表中的元素。例如:



fruits = [“apple”, “banana”, “cherry”, “date”] # 修改列表中的元素 fruits[1] = “grape” # 将列表中第二个元素修改为grape print(fruits) # 输出:[“apple”, “grape”, “cherry”, “date”]


增加元素:可以使用append()方法向列表末尾添加一个元素,使用insert()方法在指定的位置插入一个元素。例如:



fruits = [“apple”, “banana”, “cherry”, “date”] # 向列表末尾添加一个元素 fruits.append(“fig”) print(fruits) # 输出:[“apple”, “banana”, “cherry”, “date”, “fig”] # 在指定位置插入一个元素 fruits.insert(2, “grape”) print(fruits) # 输出:[“apple”, “banana”, “grape”, “cherry”, “date”, “fig”]


删除元素:可以使用remove()方法删除列表中的某个元素,使用pop()方法删除列表中指定位置的元素,并返回被删除的元素的值。例如:



fruits = [“apple”, “banana”, “cherry”, “date”] # 删除列表中的某个元素 fruits.remove(“banana”) print(fruits) 输出:[“apple”, “cherry”, “date”] 删除列表中指定位置的元素 removed_element = fruits.pop(1) print(“被删除的元素是:”, removed_element) # 输出:被删除的元素是: cherry print(fruits) # 输出:[“apple”, “date”]


* 列表长度:可以使用`len()`函数获取列表的长度,即列表中元素的个数。例如:



fruits = [“apple”, “banana”, “cherry”, “date”] # 获取列表的长度 print(len(fruits)) # 输出:4


列表切片:可以通过切片(slicing)来获取列表的子列表。切片使用冒号(:)表示,左边界是包含的,右边界是不包含的。例如:



fruits = [“apple”, “banana”, “cherry”, “date”] # 获取列表的子列表 print(fruits[1:3]) # 输出:[“banana”, “cherry”]


### 列表的实际应用


Python列表在实际应用中具有广泛的用途,以下是一些示例: 数据处理:列表可以用来存储和处理大量数据,例如从文件或数据库中读取的数据,可以通过列表的各种操作来进行数据的筛选、排序、统计等。



从文件中读取数据到列表 with open(“data.txt”, “r”) as f: data = f.readlines() # 去除每行末尾的换行符 data = [line.strip() for line in data] # 筛选出长度大于10的字符串 long_strings = [s for s in data if len(s) > 10] # 对列表进行排序 data.sort() # 统计列表中元素的个数 count = len(data)


数据可视化:列表可以作为存储数据的容器,将数据传递给数据可视化库,如Matplotlib或Seaborn,进行绘图。



import matplotlib.pyplot as plt # 生成示例数据 x = [1, 2, 3, 4, 5] y = [10, 8, 6, 4, 2] # 绘制折线图 plt.plot(x, y) plt.xlabel(“X轴标签”) plt.ylabel(“Y轴标签”) plt.title(“示例折线图”) plt.show()


程序控制流程:列表可以用来管理程序的控制流程,例如通过循环遍历列表中的元素执行一系列操作。



处理用户输入 while True: user_input = input(“请输入操作(1.添加数据 2.删除数据 3.退出):”) if user_input == “1”: # 添加数据到列表 data = input(“请输入要添加的数据:”) my_list.append(data) elif user_input == “2”: # 从列表中删除数据 data = input(“请输入要删除的数据:”) if data in my_list: my_list.remove(data) else: print(“列表中不存在该数据。”) elif user_input == " “3”: # 退出循环 print(“程序已退出。”) break else: print(“无效的输入,请重新输入。”)


* 数据结构:列表作为一种基本的数据结构,可以用来构建更复杂的数据结构,如栈、队列、链表等。



栈:后进先出(LIFO) stack = [] # 入栈 stack.append(1) stack.append(2) stack.append(3) # 出栈 print(stack.pop()) # 输出:3 # 队列:先进先出(FIFO) queue = [] # 入队列 queue.append(1) queue.append(2) queue.append(3) # 出队列 print(queue.pop(0)) # 输出:1 # 链表:动态数据结构,可以在任意位置插入和删除元素 class ListNode: def init(self, val=0, next=None): self.val = val self.next = next # 创建链表 head = ListNode(1) node1 = ListNode(2) node2 = ListNode(3) head.next = node1 node1.next = node2 # 遍历链表 current = head while current: print(current.val) current = current.next


### 列表的注意事项


在使用列表时,需要注意以下几点: 列表是可变的:列表中的元素可以随时被修改、添加或删除,这意味着列表是可变的(mutable)。因此,在处理列表时需要注意原地修改(in-place modification)和创建新列表(creating a new list)之间的区别。



原地修改 fruits = [“apple”, “banana”, “cherry”] fruits[1] = “orange” # 创建新列表 fruits = [“apple”, “banana”, “cherry”] new_fruits = fruits + [“date”]


列表索引从0开始:列表中的元素通过索引来访问,索引从0开始。因此,在使用列表时需要注意索引的使用,避免越界错误(IndexError)。



fruits = [“apple”, “banana”, “cherry”] # 正确的索引访问 print(fruits[0]) # 输出:apple # 错误的索引访问 print(fruits[3]) # 报错:IndexError: list index out of range


列表的搜索效率较低:列表的搜索操作(如in、index()等)效率较低,因为需要逐个比较列表中的元素。如果需要频繁进行搜索操作,可能需要考虑使用其他数据结构,如集合(set)或字典(dictionary)。



fruits = [“apple”, “banana”, “cherry”] # 列表的搜索操作 print(“orange” in fruits) # 输出:False print(fruits.index(“cherry”)) # 输出:2


列表的内存占用较大:由于列表是动态数组,需要在内存中预留足够空间来存储可能的元素,因此列表的内存占用较大。如果处理大量数据或需要优化内存占用的情况,可以考虑使用其他数据结构,如NumPy数组或Pandas数据框。



import numpy as np # 使用NumPy数组代替列表 arr = np.array([1, 2, 3, 4, 5]) # 使用Pandas数据框代替列表 import pandas as pd df = pd.DataFrame({“col1”: [1, 2, 3], “col2”: [4, 5, 6]})


列表的操作可能会引发错误:由于列表是可变的,对列表进行操作时可能会引发错误。例如,当多个变量引用同一个列表对象时,对列表的修改会影响所有引用该列表的变量。



列表的错误操作 list1 = [1, 2, 3] list2 = list1 list1.append(4) print(list1) # 输出:[1, 2, 3, 4] print(list2) # 输出:[1, 2, 3, 4],list2也被修改了


为了避免这种情况,可以使用列表的拷贝(copy)操作或使用其他数据结构来代替列表。



使用列表的拷贝操作 list1 = [1, 2, 3] list2 = list1.copy() list1.append(4) print(list1) # 输出:[1, 2, 3, 4] print(list2) # 输出:[1, 2, 3],list2不受影响




### 最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~  

给大家准备的学习资料包括但不限于:  

Python 环境、pycharm编辑器/永久激活/翻译插件  

python 零基础视频教程  

Python 界面开发实战教程  

Python 爬虫实战教程  

Python 数据分析实战教程  

python 游戏开发实战教程  

Python 电子书100本  

Python 学习路线规划

![](https://img-blog.csdnimg.cn/d29631674929476f9c3b30f7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值