python 序列类型1(列表 List)

  • Post author:
  • Post category:python




列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字。Python有6个序列的内置类型,本文讲最基本的序列类型之一列表的用法。

以下列表方法于

菜鸟教程

加工整理

list.append(obj) 列表的数据项进行修改或更新

del(value)

删除列表元素

cmp(list1, list2)

比较两个列表的元素

len(list)

返回列表元素个数

max(list)

返回列表中元素的最大值

min(list)

返回列表中元素的最小值

list(seq)

将元组转换列表

list.count(obj)

统计某个元素在列表中出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj)

将对象插入列表

list.pop([index=-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向列表中元素
l

ist.sort(cmp=None, key=None, reverse=False)

对原列表进行排序



列表的创建

列表是一个大杂烩,对其对象数据类型没有规定,所有类型都可以放入列表。

list1=[];
list2=['a','b','c']
list3=[1,"中国",list2]

通过索引或截取访问列表内的对象

list1=[1,2,3,4,5,6];
print(list1[0])
print(list1[0:2])

得到

1
[1, 2]



基本方法



1.更新 append()

列表的更新使用append()方法

list1=["北京","上海","广州"]
list1.append("深圳")
print(list1)


运行结果如图

['北京', '上海', '广州', '深圳']



2.删除 del(list.[index])/del list

使用del方法可选择删除单个列表中的指定元素(需获取索引值)或整个列表

删除整个列表后该列表被回收,不可再次打印


del(list.[index])

list1=["北京","上海","广州","深圳"]
del(list1[1])  #删除第二个元素
print(list1)


运行结果如图

['北京', '广州', '深圳']


del list

del list1
print(list1)


运行结果如图


在这里插入图片描述

此时List1已经被回收,并不是空列表,所以报错



3 比较方法 python2(cmp) python3(operator)

cmp()方法存在于python2中,在python3中不存在cmp()函数,相应的改为operator函数,在使用时需要导入operator模块


比较规则:


如果比较的元素是同类型的,则比较其值,返回结果。

如果两个元素不是同一种类型,则检查它们是否是数字。

如果是数字,执行必要的数字强制类型转换,然后比较。

如果有一方的元素是数字,则另一方的元素”大”(数字是”最小的”)

否则,通过类型名字的字母顺序进行比较。

如果有一个列表首先到达末尾,则另一个长一点的列表”大”。

如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。

这里使用

python3

operator()方法进行实例化

import  operator
list1=[1,2]
list1_1=[3,4]
list2=[5,6]
list2_1=['i','love','u']
list3=['welcome','hello']
list3_1=['hi','python']
list4=[1,2,3]
list4_1=[1,2,3]

print(operator.eq(list1,list1_1))
print(operator.eq(list2,list2_1))
print(operator.eq(list3,list3_1))
print(operator.eq(list4,list4_1))


运行结果如图

False
False
False
True



4 len() 得到列表元素个数

list1=[1,2,3,4]
print(len(list1))


运行结果如图

4



5 max() 返回元素中的最大值

列表的元素可以是数字,字符串,字符等,不支持同类型的比较

字符串的比较规则:依次比较各位字母的ASCII对应值的大小,第一位相同则比较第二位,以此类推,若前几位字符都相同则后面任有字符的大

list1=['a','b']
list2=[1,2,3,4]
list3=['no','yes','yesa']
print(max(list1))
print(max(list2))
print(max(list3))


运行结果如图

b
4
yesa



6 list.count()统计某个元素在列表中出现的次数

list1=[1,2,3,1,2,1]
print(list1.count(1))


运行结果如图

3



7 list.extend() 对原列表的拓展。在列表末尾一次性追加另一个序列中的多个值

list1=["北京","上海","广州","深圳"]
list2=["南京","苏州","青岛","杭州"]
list1.extend(list2)
print(list1)
#注:这里不能直接print(list1.extend(list2)) 
#否则输出为none
#因为得到的是extend函数的返回值为none


运行结果如图

['北京', '上海', '广州', '深圳', '南京', '苏州', '青岛', '杭州']



8 list.reverse() 反向列表中元素

list1=[1,2,3,4,5]
list1.reverse()
print(list1)


运行结果如图

[5, 4, 3, 2, 1]



9 list.sort([reverse]) 列表元素排序

可选参数reverse 默认为False 正向排序

reverse 为True 时 反向排序

list2=['a','b','g','f','d']
list1=[2,5,7,1,8,3]
list1.sort(reverse=True)
list2.sort()
print(list2)
print(list1)


运行结果如图

['a', 'b', 'd', 'f', 'g']
[8, 7, 5, 3, 2, 1]

说到列表排序, 这里补充一个列表的逆置简单方法

list1=[2,5,7,1,8,3]
print(list1[::-1])  #-1 代表元素从右往左
[3, 8, 1, 7, 5, 2]



10 列表推导式

列表推导式用于实现统一规律的列表元素的批量生成

如生成10以内的偶数

list1=[x for x in range(100) if x%2==0]
print(list1)


运行结果如图

[0, 2, 4, 6, 8]



版权声明:本文为weixin_43747389原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。