文章目录
Python内置函数/方法详解—列表list
列表是一个有序且可更改的集合,并且是最常用的 Python 数据类型。在 Python 中,列表是使用方括号
[]
编写的。
1、创建列表
在Python中,列表中元素的数据类型可以不同,可以包含整数、浮点数和复数等,当然,也可以包含列表、元组、字典和集合等。
1.1 使用 [ ] 创建列表
创建一个列表,只需要把逗号分隔的不同数据项使用方括号 [] 括起来即可。
- 创建空列表
list0 =[]
- 创建非空列表
list1 =['Baidu','Alibaba','Tencent']
1.2 使用 list() 函数 创建(转换为)列表
- 可以使用 list() 构造函数创建列表:
this_list =list(('apple','banana','cherry'))
注意:在使用 list() 函数创建列表时,一定要注意双括号。
- 在Python中,我们可以使用 list() 函数将字符串、元组、字典和集合等其他类似对象转换为列表。具体用法见下方内置函数:
2、访问列表
和列表一样,我们既可以使用下标索引访问列表中的某个元素(得到一个元素的值),也可以使用切片访问列表中的一组元素(得到是子列表)。
2.1 下标索引访问
下标索引访问元组分为两大类,即正向索引和反向索引,格式为
list_name[i]
,其中,list_name 表示列表名,i表示索引值,i可以是正数(正向索引)也可以是负数(反向索引)。
可以得知,
list_name[0]
表示列表的第一个元素,
list_name[-1]
则表示列表的最后一个元素。
list_name =['wzq','lgl','gz','whl','sj','hxw']print(list_name[0])print(list_name[-1])
wzq
hxw
正向索引:从第一个(下标0)开始、第二个(下标1)…
反向索引:从倒数第一个(下标-1)、倒数第二个(下标-2)…
2.2 切片访问
如若对上方描述不太理解,可参考下表:
元组值wzqlglgzwhlsjhxw正向索引012345反向索引-6-5-4-3-2-1
使用切片访问列表的格式为
list_name[strat : end : step]
,其中,start 表示起始索引,end 表示结束索引,step 表示步长。
list_name =['wzq','lgl','gz','whl','sj','hxw']print(list_name[1:5:2])print(list_name[-6:-1:3])
['lgl','whl']['wzq','whl']
在使用切片访问列表元素时,
list_name[strat : end : step]
,[start:end] 是左闭右开区间,即访问不了 end 代表的元素。
2.3 for 循环遍历列表
可以使用 for 循环遍历列表中的项目:
fruit_list =['apple','pear','cherry']for i in fruit_list:print(i)
apple
pear
cherry
2.4 检查项目是否存在
要确定列表中是否存在指定的项,我们可以使用 in 关键字:
# 检查列表中是否存在'apple'
fruit_list =['apple','pear','cherry']print('apple'in fruit_list)
True
使用 in 关键字检查列表中是否存在指定项时,如果存在,则返回 True ;反之,则返回 False 。
2.5 更改列表值
当我们创建列表后,我们可以对列表中的数据项进行修改或更新,当然我们也可以使用 append() 方法来添加列表项。
fruit_list =['apple','pear','cherry']
fruit_list[2]='banana'print(fruit_list)
['apple','pear','banana']
注意:元组一旦创建后,其值将无法被更改,但是有其他解决方法。
2.6 列表连接(合并)/复制
与字符串一样,列表之间可以使用
+
号和
*
号实现元组的连接和复制,这就意味着它们可以生成一个新的列表。
1、
+
连接(合并)
x =[1,2,3]
y =[4,5,6]print(x + y)
[1,2,3,4,5,6]
2、
*
复制
x =['Hello']print(x *5)
['Hello','Hello','Hello','Hello','Hello']
2.7 嵌套列表
使用嵌套列表即在列表里面创建其他列表。
x =[1,2,3]
y =['a','b','c']
z =[x, y]print(z)
[[1,2,3],['a','b','c']]
2.8 列表比较
列表比较需要引入 operator 模块的 eq 方法。
# 导入 operator 模块import operator
a =[1,2]
b =[2,3]
c =[2,3]print("operator.eq(a, b):", operator.eq(a, b))print("operator.eq(b, c):", operator.eq(b, c))
operator.eq(a, b):False
operator.eq(b, c):True
3、内置函数
3.1 打印输出 print()
1、
print()
函数
print() 函数的功能我们已经非常熟悉了,就是打印输出。
my_list =['pink',True,1.78,65]print(my_list)
['pink',True,1.78,65]
3.2 确定列表项目 len()
2、
len()
函数
当我们要确定一个列表有多少项目(元素)时,可以使用
len()
函数。
fruit_list =['apple','banana','cherry']print(len(fruit_list))
3
3.3 返回变量类型 type()
3、
type()
函数
使用 type() 函数可以确定变量是什么类型(字符串、列表、元组、字典或集合)。
info_list =['name','gender','age','height','weight']print(type(info_list))
<class'list'>
当对
info_list
使用 type() 确定变量类型时,会返回
<class 'list'>
,表明这是一个列表。
3.4 转换为列表 list()
4、
tuple()
函数
tuple() 函数的功能是,将其他类型转换为元组类型,详细用法如下:
- 将字符串转换为列表
str1 ='Hello Python'print(list(str1))
['H','e','l','l','o',' ','P','y','t','h','o','n']
- 将元组转换为列表
tuple1 =('Hello','Python')print(list(tuple1))
['Hello','Python']
- 将字典转换为列表
dict1 ={'Hello':'Python','name':'pink'}print(list(dict1))
['Hello','name']
- 将集合转换为列表
set1 ={'Hello','Python','name','pink'}print(list(set1))
['Python','name','pink','Hello']
- 将区间转换为列表
range1 =range(1,6)print(list(range1))
[1,2,3,4,5]
3.5 元组元素最大/小值 max()、min()
5、
max()
函数和
min()
函数
max() 函数的作用是返回列表中元素最大值。min() 函数的作用是返回列表中元素最小值。
list1 =[4,6,2,0,-5]print(max(list1))print(min(list1))
list2 =['a','z','A','Z']print(max(list2))print(min(list2))
6-5
z
A
3.6 删除列表 del
- 删除单个元素
我们可以使用
del list_name[i]
来删除某个指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。
list_de =['Baidu','Alibaba','Tencent','Bytedance']del list_de[1]print(list_de)
['Baidu','Tencent','Bytedance']
- 删除列表
del 函数不仅可以实现删除某个元素,还可以删除整个列表。
list_de =['Baidu','Alibaba','Tencent','Bytedance']del list_de
当我们使用 del 函数删除某列表后,再使用 print() 函数打印输出时,会报错
NameError: name 'list_de' is not defined
,表明该列表未被定义。
4、内置方法
4.1 添加元素 append()、insert()、extend()
1、
append()
方法
append() 方法用于在列表末尾添加新的对象。
语法
list.append(element)
参数值
参数描述element必需。任何类型(字符串、数字、对象等)的元素。
实例
- 添加元素
fruit_list =['apple','banana','cherry']
fruit_list.append('pear')print(fruit_list)
['apple','banana','cherry','pear']
- 添加列表
x =[1,2,3]
y =['A','B','C']
x.append(y)print(x)
[1,2,3,['A','B','C']]
2、
insert()
方法
insert() 方法用于将指定对象插入列表的指定位置。
语法
list.insert(position, element)
参数值
参数描述position必需。数字,指定在哪个位置插入值。element必需。元素,任何类型(字符串、数字、对象等)。
实例
- 把值 “orange” 作为第二个元素插入 fruits 列表:
fruits =['apple','banana','cherry']
fruits.insert(1,"orange")print(fruits)
['apple','orange','banana','cherry']
- 将列表 y 插入到列表 x 中
x =[1,2,3]
y =['a','c']
x.insert(0, y)print(x)
[['a','c'],1,2,3]
append() 只能在末尾处添加元素或列表,insert() 可以在任意位置添加元素或列表。
3、
extend()
方法
extend() 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
语法
list.extend(iterable)
参数值
参数描述iterable必需。任何可迭代对象(列表、集合、元组等)。
实例
aver =['A','B','C']
- 添加字符串元素到列表末尾
str1 ='Hello'
aver.extend(str1)print(aver)
['A','B','C','H','e','l','l','o']
- 添加列表元素到列表末尾
list1 =[1,2,3]
aver.extend(list1)print(aver)
['A','B','C',1,2,3]
- 添加元组元素到列表末尾
tuple1 =(1,2,3)
aver.extend(tuple1)print(aver)
['A','B','C',1,2,3]
- 添加字典元素到列表末尾
dict1 ={'name':'pink','gender':True}
aver.extend(dict1)print(aver)
['A','B','C','name','gender']
- 添加集合元素到列表末尾
set1 ={1,2,3}
aver.extend(set1)print(aver)
['A','B','C',1,2,3]
- 添加区间到列表末尾
range1 =range(1,10)
aver.extend(range1)print(aver)
['A','B','C',1,2,3,4,5,6,7,8,9]
4.2 元素出现次数 count()
count() 方法用于统计某个元素在列表中出现的次数。
语法
list.count(value)
参数值
参数描述value必需。任何类型(字符串、数字、列表、元组等)。要搜索的值。
实例
num =[1,4,2,9,7,8,9,3,1]print(num.count(9))
2
4.3 指定值索引 index()
index() 方法用于从列表中找出某个值第一个匹配项的索引位置。
语法
list.index(element)
参数值
参数描述element必需。任何类型(字符串、数字、列表等)。要搜索的值。
实例
num =[4,55,64,32,16,32]print(num.index(32))
3
当被搜索值在列表中多次出现时,仅返回首次出现的位置。
4.4 对列表排序 sort()
sort() 方法用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法
list.sort(reverse=True|False, key=myFunc)
参数值
参数描述reverse可选。reverse=True 将对列表进行降序排序。默认是 reverse=False。key可选。指定排序标准的函数。
实例
- 以字母顺序对列表进行排序:
words =['Name','Gender','Age','Height','Weight']
words.sort()print(words)
['Age','Gender','Height','Name','Weight']
- 对列表进行降序排序:
words =['Name','Gender','Age','Height','Weight']
words.sort(reverse=True)print(words)
['Weight','Name','Height','Gender','Age']
- 按照值的长度对列表进行排序:
# 返回值的长度的函数:defmyfunc(e):returnlen(e)
words =['a','bb','ccc','dddd','']
words.sort(key=myfunc)print(words)
['','a','bb','ccc','dddd']
- 根据字典的 “year” 值对字典列表进行排序:
# 返回 'year' 值的函数:defmyfunc(e):return e['year']
words =[{'char':'a','year':1963},{'char':'b','year':2010},{'char':'c','year':2019}]
words.sort(key=myfunc)print(words)
[{'char':'a','year':1963},{'char':'b','year':2010},{'char':'c','year':2019}]
- 按照值的长度对列表进行降序排序:
# 返回值的长度的函数:defmyfunc(e):returnlen(e)
words =['aa','b','ccc','dddd']
words.sort(reverse=True, key=myfunc)print(words)
['dddd','ccc','aa','b']
- 指定列表中的元素排序来输出列表:
# 获取列表的第二个元素deftakeSecond(elem):return elem[1]# 列表
random =[(2,2),(3,4),(4,1),(1,3)]# 指定第二个元素排序
random.sort(key=takeSecond)# 输出类别print('排序列表:', random)
排序列表: [(4,1),(2,2),(1,3),(3,4)]
4.5 复制列表 copy()
copy() 方法用于复制列表,类似于 **a[:]**。
语法
list.copy()
参数值
无参数
实例
fruits =['apple','banana','cherry','orange']
x = fruits.copy()print(x)
['apple','banana','cherry','orange']
复制(制作副本)的另一种方法是使用内置函数 list() ,如下:
list1 =['apple','banana','cherry']
list_2 =list(list1)
4.6 颠倒列表顺序 reverse()
reverse() 方法用于反向列表中元素。
语法
list.reverse()
参数值
无参数
实例
fruits =['apple','banana','cherry']
fruits.reverse()print(fruits)
['cherry','banana','apple']
4.7 删除元素 pop()、remove()、clear()
1、
pop()
方法
pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
语法
list.pop(pos)
参数值
参数描述pos可选。数字,指定需删除元素的位置。默认值 -1,返回最后的项目。
实例
- 当 pos 未指定时,默认删除最后的元素
fruits =['apple','banana','cherry']
fruits.pop()print(fruits)
['apple','banana']
- pos 指定要删除元素的位置
fruits =['apple','banana','cherry']
fruits.pop(1)print(fruits)
['apple','cherry']
2、
remove()
方法
remove() 方法用于移除列表中某个值的第一个匹配项。
语法
list.remove(element)
参数值
参数描述element必需。需删除的任何类型(字符串、数字、列表等)的元素。
实例
num =[1,3,2,8,3]
num.remove(3)print(num)
[1,2,8,3]
当被删除的元素在列表中存在多个时,默认删除首次出现的那个。
3、
clear()
方法
clear() 方法用于清空列表,类似于 **del a[:]**。
语法
list.clear()
参数值
无参数
实例
word =['A','B','C']
word.clear()print(word)
[]
clear() 方法的作用是清空列表,执行结束后对其使用 printf() 打印输出时,会输出
[]
,说明列表还存在,只是空列表而已。
del 函数的作用是删除列表,执行结束后对其使用 printf() 打印输出时,会报错
NameError: name 'word' is not defined.
。
5、总结
函数描述print()打印输出len()确定列表项目type()返回变量类型list()转换为列表max()返回列表元素最大值min()返回列表元素最小值del删除列表方法描述append(obj)在列表末尾添加新的对象insert(index, obj)在指定位置添加元素extend(seq)将列表元素(或任何可迭代的元素)添加到当前列表的末尾count(obj)统计某个元素在列表中出现的次数index(obj)返回具有指定值的第一个元素的索引sort( key=None, reverse=False)对原列表进行排序copy()复制列表reverse()颠倒列表的顺序pop([-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值remove(obj)移除列表中某个值的第一个匹配项clear()清空列表
以上就是本文的全部内容啦!如果对您有帮助,麻烦点赞啦!收藏啦!欢迎各位评论区留言!!!
最后编辑于:2022/7/28 7:25
版权归原作者 LeoATLiang 所有, 如有侵权,请联系我们删除。