python基础——列表【创建,下标索引,常见操作方法】
python基础——列表【创建,下标索引,常见操作方法】详细介绍python列表的创建、下标索引以及python常见操作方法:index()、append()、extend()、insert()、del、pop、remove、clear、count、len
📝前言:
这篇文章主要讲解一下python中常见的数据容器之一——列表
本文主要讲解列表的创建以及我们常用的列表操作方法
🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:且视他人之疑目如盏盏鬼火,大胆去走你的夜路
文章目录
一,什么是列表
首先,列表是什么?
在Python中,列表(List)是一种有序、可变的集合数据类型,可以存储任意类型的元素,包括数字、字符串、布尔值、甚至其他列表。列表允许重复的元素,也可以包含混合类型的元素。
从上面我们可以提取出列表的以下几个特点:
1,可以容纳多个数据(上限为2**63-1、9223372036854775807个)
2,可以容纳不同类型的数据(混装)
3,数据是有序存储的(有下标序号)
4,允许重复数据存在
5,可以修改(增加或者删除元素)
二,列表的创建
列表的创建是通过方括号 []
以及逗号分隔符,
来实现的。例如:
my_list = [1, 2, 3, "apple", True] # 这里创建了一个存放着不同数据类型的列表
三,列表的下标索引访问
如果对下标索引不太了解的朋友可以先看这篇文章C语言——数组,里面有对下标索引的详细介绍。
1,访问普通的列表
在python中,元素的下标:从前向后,是从0
开始,但是也可以反向索引:从后向前,是从-1
开始
以下是一个使用列表下标索引的简单示例:
# 创建一个列表
my_list = [1, 2, 3, 4, 5]
# 使用下标索引来获取列表中的元素
first_element = my_list[0] # 结果是1
second_element = my_list[1] # 结果是2
在这个例子中,我们首先创建了一个包含
5
个整数的列表my_list
。
然后,我们使用下标索引[0]
和[1]
来获取列表中的第一个和第三个元素,并将它们分别赋值给变量first_element
和second_element
。
(注意:超出列表范围的索引会引发错误)
2,访问嵌套的列表
例如:
# 定义一个嵌套的列表
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 访问嵌套列表中的元素
first_element = nested_list[0][0] # 第一个列表中的第一个元素
second_element = nested_list[1][2] # 第二个列表中的第三个元素
third_list = nested_list[2] # 第三个列表
print(first_element, second_element, third_list)
输出结果:
[0][0]
:先找外层列表的第一个元素——列表,再找内层第一个列表的第一个元素
[1][2]
:先找外层列表的第二个元素——列表,再找内层第二个列表的第三个元素
[3]
:外层列表的第三个元素——列表
四,列表的常见操作方法
1,查找元素(index)
index()
方法:用于从列表中查找指定元素的索引,但是如果列表不包含此元素,则会引发 ValueError
。
语法:
list.index(value, [start, [stop]]) # []代表可选
●
value
:要从列表中查找的元素。
●start
:开始查找的位置。默认值为0。
●stop
:停止查找的位置。默认值为列表的长度。
●返回值
:返回指定元素在列表中的索引。
示例:
my_list = [1, 2, 3, 4, 5]
# 查找元素3的索引
index = my_list.index(3)
print(index) # 输出 2
(注意:如果列表中有多个相同的指定元素,index()
方法仅返回第一个出现该元素的索引。)
2,增加元素
(1)在列表末尾追加(append)
append()
方法:将一个值添加到列表的末尾,并返回修改后的列表。
(注意:append()
方法是直接修改原始列表,而不是创建一个新列表。)
语法:
list.append(element)
●
list
是一个列表对象。
●element
是要添加到列表末尾的元素。
示例一:
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # 输出:[1, 2, 3, 4]
添加的元素还可以是一个列表
示例二:
my_list = [1, 2, 3]
sub_list = [4, 5]
my_list.append(sub_list)
print(my_list) # 输出:[1, 2, 3, [4, 5]]
(2)在队尾追加多个元素(extend)
extend()
方法来扩展列表,即在列表的末尾添加其他列表或其他元素。
(注意:extend()
方法会直接修改原始列表,而不是创建一个新的列表。)
语法:
list.extend(iterable)
●
iterable
:要添加到列表末尾的元素序列。(不可是字符串或者字典)
示例:
# 创建一个列表
lst = [1, 2, 3]
# 使用 extend() 方法扩展列表
lst.extend([4, 5, 6]) # 将另一个列表扩展到原始列表的末尾
print(lst) # 输出:[1, 2, 3, 4, 5, 6]
# 尝试扩展一个字符串,会引发 TypeError
try:
lst.extend("Hello")
except TypeError as e:
print(f"Error: {e}")
(3)在指定位置插入元素(insert)
insert()
方法来插入一个元素到指定的位置。
(注意:insert()
方法会直接修改原始列表,而不是创建一个新的列表。)
语法
list.insert(index, element)
index
:指定插入的位置。(下标)
element
:要插入的元素。
示例:
# 创建一个列表
lst = [1, 2, 3, 4]
# 使用 insert() 方法插入元素
lst.insert(1, 1.5) # 在索引 1 处插入 1.5
print(lst) # 输出:[1, 1.5, 2, 3, 4]
3,删除元素
(1)直接删除(del)
del
语句用于从列表中删除指定下标的元素,不会返回被删除的元素。
(直接修改原始列表)
语法:
del list[下标]
示例:
lst = [1, 2, 3, 4, 5]
del lst[1] # 删除索引为1的元素,即2
print(lst) # 输出:[1, 3, 4, 5]
(2)删除并返回(pop)
pop()
方法用于从列表中删除指定下标的元素,会返回被删除的元素。
(直接修改原始列表)
语法:
list.pop(下标)
示例:
lst = [1, 2, 3, 4, 5]
removed_element = lst.pop(1) # 删除索引为1的元素,并返回该元素
print(lst) # 输出:[1, 3, 4, 5]
print(removed_element) # 输出:2
(3)删除对应内容(remove)
remove()
方法用于删除某元素在列表中的第一个匹配项,如果元素不在列表中,这个方法不会引发错误。
(直接修改原始列表)
语法:
list.remove(元素)
示例:
numbers = [1, 2, 3, 4, 5, 3]
numbers.remove(3)
print(numbers) # 输出 [1, 2, 4, 5, 3]
(4)清空列表(clear)
clear()
方法用于清空列表中的所有元素。
语法:
list.clear()
示例:
numbers = [1, 2, 3, 4, 5]
numbers.clear()
print(numbers) # 输出 []
4,统计某元素出现的次数(count)
count()
统计某元素出现的数量
语法:
list.count(元素)
示例:
fruits = ["apple", "banana", "cherry", "apple"]
count = fruits.count("apple")
print(count) # 输出 2
5, 统计列表全部元素的个数(len)
len()
用于统计列表中全部元素的个数
语法:
len(列表)
示例:
fruits = ["apple", "banana", "cherry"]
count = len(fruits)
print(count) # 输出 3
6,反转列表(reverse)
reverse()
可以用于反转列表
(注意:reverse()
方法会直接修改原始列表,而不是创建一个新的反转对象。)
基本语法:
列表.reverse()
示例:
# 反转列表
lst = [1, 2, 3, 4, 5]
lst.reverse()
print(lst) # 输出: [5, 4, 3, 2, 1]
7,方法总结
因为列表是可以修改的序列,所以有关列表的大多数操作都是直接在原始列表上进行的,不会返回新的列表
下面对方法做个梳理,方便大家随时查阅功能:
五,推导式
列表推导式(List Comprehension)是 Python 中的一个强大工具,它允许你从一个现有的列表中创建一个新的列表,同时可以执行一些操作。使用列表推导式,你可以有效地创建新的列表,其语法结构为:
new_list = [expression for item in iterable if condition]
expression
:对于列表中的每个元素,需要计算的表达式。
item
:当前迭代的元素。
iterable
:可以迭代的对象,如列表、元组或集合。
condition
:可选条件,用于过滤迭代中的元素。
让我们通过几个简单的例子来理解列表推导式:
假如我们有一个列表,表示学生不同的成绩:
scores = [85, 90, 78, 92, 88, 76, 95, 89]
现在我们需要给每个学生的成绩都减去10分,得到一个新的成绩列表:
new_scores = [score - 10 for score in scores]
print(new_scores) # 输出:[75, 80, 68, 82, 78, 66, 85, 79]
我们又要选出新成绩中,成绩大于80分的优秀成绩:
outstanding_scores = [s for s in new_scores if s > 80]
print(outstanding_scores) # 输出:[82, 85]
注意:
字典的列表推导式:
假如我想实现,把两个列表中的元素组合拼成一个字典:
但是下面这种是错误的
list = [0, 1, 2, 3, 4, 5]
dict2 = {k: v for k in range(6) for v in list}
print(dict2) # 输出:{0: 5, 1: 5, 2: 5, 3: 5, 4: 5, 5: 5}
这是因为:
这种写法,相当于使用了两个嵌套的循环:
外层循环遍历range(6)
,即0, 1, 2, 3, 4, 5
。
内层循环遍历list
列表,即0, 1, 2, 3, 4, 5
。
每一次都是内层执行完以后,得到最后一个元素,然后赋值给了0-5这六个键
v = 0
for k in range(6):
for v in list:
v = v
print(k,v)
正确写法:
使用zip
先把两个列表合并成一个以元组为元素的zip
可迭代对象:
list = [0, 1, 2, 3, 4, 5]
dict2 = {k: v for (k, v) in zip(range(6),list)}
print(dict2) # 输出:{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)