python基础——列表

admin2024-05-15  0

目录

列表操作

增加

修改

删除

统计

排序

小结

for遍历列表

拆包

列表推导式

列表中不同数据类型处理

公共方法

统计

成员运算符

小结


在python中,所有的非数字型变量都支持以下特点:

  1. 都是一个序列
  2. 通过 变量名[索引] 的方式取值
  3. 通过 for in 遍历
  4. 可以计算长度、最大和最小值

List列表是python中使用最频繁的数据类型,在其他语言中通常叫做数组(arr),用于存储一串信息。

  • 列表用[]定义,列表中的数据之间使用,分隔
  • 列表的索引从0开始;索引就是数据在列表中的位置编号,也可以称为下标
  • 使用 列表名[索引] 的方式访问指定的成员
    • 第一个成员的的索引编号是0
    • 不能访问不存在的索引编号(会报错)
  • 空列表:list2 = [],即列表中没有元素,不能访问空列表中的数据

列表的定义:

list1 = ['肖战','魏无羡','时影','肖春生','顾魏','顾一野','盛阳']
#list1是列表变量名

列表数据访问:

print(list1[0])#返回第1个成员:肖战
print(list1[1])#返回第2个成员:魏无羡
print(list1[2])#返回第3个成员:时影
print(list1[3])#返回第4个成员:肖春生
print(list1[4])#返回第5个成员:顾魏
print(list1[5])#返回第6个成员:顾一野
print(list1[6])#返回第7个成员:盛阳

 查看列表中所有的方法:

print(dir(list))

'''
输出结果:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
'''

列表操作

增加

列表.insert(索引,值),在列表中指定位置插入指定值,语法:

list1 = ['肖战','魏无羡','时影']
list1.insert(1,"肖春生")#把肖春生插入到第2个位置
print(list1)#输出['肖战', '肖春生', '魏无羡', '时影']

列表.append(值), 在列表最后插入指定值,语法:

list1 = ['肖战','魏无羡','时影']
list1.append("肖春生")#在列表的最后插入肖春生
print(list1)#输出['肖战', '魏无羡', '时影','肖春生']

列表1.extend(列表2),把列表2的成员追加到列表1的后面,语法:

list1 = ['肖战','魏无羡','时影']
list2 = ['盛阳','顾魏','顾一野']
list1.extend(list2)#把list2的成员追加到list1的最后
print(list1)#输出['肖战', '魏无羡', '时影','盛阳','顾魏','顾一野']

修改

列表名[索引] = 值修改索引指定位置的值

list1 = ['肖战','魏无羡','时影']
list1[1] = '顾魏'#修改第2个成员的值为顾魏
print(list1)#输出['肖战', '顾魏', '时影']

删除

del(列表名[索引]),删除索引指定位置的值

list1 = ['肖战','魏无羡','时影']
del(list1[2])#删除第3个成员的值
print(list1)#输出['肖战', '魏无羡']

 列表.remove(),删除指定值

list1 = ['肖战','魏无羡','时影']
list1.remove('魏无羡')#删除魏无羡
print(list1)#输出['肖战', '时影']

列表.pop(),删除列表中最后一个成员

list1 = ['肖战','魏无羡','时影']
list1.pop()#删除最后一个成员
print(list1)#输出['肖战', '时影']

列表.pop(索引),删除索引指定位置的值(同del)

list1 = ['肖战','魏无羡','时影']
list1.pop(0)#删除第1个成员的值
print(list1)#输出['魏无羡', '时影']

列表.clear(),清空列表

list1 = ['肖战','魏无羡','时影']
list1.clear()#清空列表
print(list1)#输出[]

统计

列表.count(值),统计指定值在列表中的数量,若没有,返回0

list1 = ['肖战','魏无羡','肖战']
print(list1.count("肖战"))#输出肖战出现的次数:2

列表.index(值),返回指定值在列表中从0开始第一次出现的位置

列表.index(值,索引) 返回指定值在列表中从指定索引开始第一次出现的位置

指定的值必须存在,否则报错

list1 = ['肖战','魏无羡','肖战']
print(list1.index("肖战"))#输出肖战在列表中从0开始第一次出现的位置:0
print(list1.index("肖战",1))#输出肖战在列表中从1开始第一次出现的位置:2

排序

列表.sort(),对列表进行升序排列

列表.sort(reverse=True),对列表进行降序排列

list1 = [3,567,23,4,8]
list1.sort()#对列表从小到大排序
print(list1)#返回[3, 4, 8, 23, 567]
list1.sort(reverse=True)#对列表从大到小排序
print(list1)#返回[567, 23, 8, 4, 3]

列表.reverse() ,逆置,对列表倒序排列

list1 = [3,567,23,4,8]
list1.reverse()#对列表倒序排列
print(list1)#输出[8, 4, 23, 567, 3]

小结

分类语法说明
增加列表.insert(索引,值)在列表中指定位置插入指定值
列表.append(值)在列表最后插入指定值
列表1.extend(列表2)把列表2的成员追加到列表1后面
修改列表名[索引] = 值修改索引指定位置的值
删除del(列表名[索引])删除索引指定位置的值
列表.remove()删除指定值
列表.pop()删除列表中最后一个成员
列表.pop(索引)删除索引指定位置的值(同del)
列表.clear()清空列表
统计列表.count(值)

统计指定值在列表中的数量;若没有,返回0

列表.index(值)

返回指定值在列表中从0开始第一次出现的位置
列表.index(值,索引) 返回指定值在列表中从指定索引开始第一次出现的位置
排序

列表.sort()

对列表进行升序排列
列表.sort(reverse=True)对列表进行降序排列
列表.reverse() 逆置,对列表倒序排列

for遍历列表

for 变量名 in 列表:
    代码
'''
列表中有多少成员,for就会循环多少次
变量名代表for每次循环的时候,得到的列表成员的值
'''

拆包

变量1,变量2,变量3,,,变量n = 列表变量

等号左边的变量数量要和等号邮编的列表中成员数量一致

list1 = ['肖战','肖春生','顾魏']
a,b,c = list1
print(a,b,c)

列表推导式

用于快速生成列表(数量庞大时),语法;

列表变量名 = [x for x in range(开始值,结束值,步长)]——左闭右开根据步长推导

列表变量名 = [x for x in range(开始值,结束值,步长) if 条件]——符合条件的才推导出

list1 = [x for x in range(0,10)]
print(list1)#输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list2 = [x for x in range(5,20,3)]
print(list2)#输出[5, 8, 11, 14, 17]
list3 = [x for x in range(30,5,-5)]
print(list3)#输出[30, 25, 20, 15, 10]
list4 = [x for x in range(30,5,-5) if x != 10]
print(list4)#输出[30, 25, 20, 15]

 例:用列表推导式,创建一个列表,内容为[0,10,20,30,40,50,60,70,80,90,100]

list5 = [x for x in range(0,101,10)]
print(list5)

列表中不同数据类型处理

        当列表中成员数据类型不一致,但需要再for中通过统一调代码处理所有数据,需要将所有数据转化为同一个类型。

例1:输出列表的每个值,统一转换

list1 = ['肖战',32,183.6,"演员"]
a = 1
for n in list1:
    print("列表第%d个成员的值是%s" % (a,str(n)))#所有值转换为字符串
    a += 1
'''
输出:
列表第1个成员的值是肖战
列表第2个成员的值是32
列表第3个成员的值是183.6
列表第4个成员的值是演员
'''

例2:计算下面所有数字的和

list2 = [56,'32',45,'6']
sum = 0
for n in list2:
    sum += int(n)#所有元素转换为整型后求和
print(sum)#输出139

公共方法

非列表特有,也适用于元组、字典、字符串

统计

len(列表):返回列表中成员的数量

len(字符串):返回字符串中字符的个数

list1 = [4,7,34,67]
print(len(list1))#返回列表中元素的个数:4
list2 = ['肖战','魏无羡','时影']
print(len(list2))#返回列表中成员的个数:3
str = "hi,肖战"
print(len(str))#返回字符串中字符的个数:5

max(列表):返回列表中的最大值

min(列表):返回列表中的最小值

max(字符串)min(字符串):返回字符串中ASCII码最大、最小的字符

list1 = [54,12,78,123,77]
print(max(list1))#输出123
print(min(list1))#输出12
str = "hixiaozhan"
print(max(str))#输出z(对应ASCII码最大)
print(min(str))#输出a(对应ASCII码最小)

成员运算符

值 in 列表:判断指定值是否在列表/字符串中

值 not in 列表:判断指定值是否不在列表/字符串中

list1 = [4,6,27,1]
if 4 in list1:
    print("存在")
if 5 not in list1:
    print("不存在")

str = "hi,肖战"
if "肖" in str:
    print("存在")

小结

分类语法说明
统计len(列表)返回列表中元素的个数
max(列表)返回列表中最大的数据
min(列表)返回列表中最小的数据
成员运算符值 in 列表判断值是否在列表中,存在返回True,不存在返回False
值 not in 列表判断值是否不在列表中,存在返回False,不存在返回True

例1:定义一个变量,内容如下["肖战","魏无羡","王一博","蓝湛","金光瑶"],查找列表中是否有金光瑶,如果有将其删除。

list1 = ["肖战","魏无羡","王一博","蓝湛","金光瑶"]
if "金光瑶" in list1:
    list1.remove("金光瑶")
print(list1)#输出['肖战', '魏无羡', '王一博', '蓝湛']

例2:定义一个列表,内容如下[3,5,67,2,34,12,5,11],计算列表中元素的平均值

list2 = [3,5,67,2,34,12,5,11]
sum = 0#存放元素和
for n in list2:
    sum += n
print(sum/len(list2))#输出17.375
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!