列表是Python中的可变序列.在形式上,列表的所有元素都放在一对中括号[]中,两个相邻的元素间使用逗号 , 分隔.
在内容上,可以将整数 实数 字符串 列表 元组等任何类型的内容放入到列表中,并且同一个列表中,元素的类型可以不同.
列表的创建和删除
语法格式:
listname = [element 1,element 2,element 3,...,element n]
其中: listname 表示列表的名称,element表示列表中的元素,个数没有限制,并且只要是Python支持的数据类型就可以
创建数值列表
语法:
list_a(date)
其中data表示可以转换为列表的数据,其类型可以是range对象 字符串 元组 或者其他可以迭代类型的数据
# 创建空列表示例:
# list_a = []
# 创建数值列表示例:
# a = list(range(10,20,2))
# print (a)
删除列表
对于已经创建的列表,不再使用时,可以使用del语句将其删除.
语法:
del listname #listname为要删除的列表名称
# 删除列表示例:
# a = ["春天","夏天","秋天","冬天","东","南","西","北"]
访问列表元素
想将列表的内容输出比较简单,直接使用print()函数即可.
# 实例1,输出每日一贴
# import datetime
# # 定义一个列表
# mot = ["今天星期一:\n坚持下去不是因为我坚强,而是因为我别无选择.",
# "今天星期二:\n含泪播种的人一定能笑着收获.",
# "今天星期三:\n作对的事情比把事情作对更重要",
# "今天星期四:\n命运给予我们的不是失望之酒,而是机会之杯.",
# "今天星期五:\n不要等到明天,明天太遥远,今天就行动",
# "今天星期六:\n求知若饥,虚心若愚.",
# '今天星期日:\n成功将属于那些从不说"不可能"的人']
# day = datetime.datetime.now().weekday()
# print (mot[day])
遍历列表
遍历ilebiao是所有元素中常用的一种操作,在遍历的过程中可以完成查询 处理等功能.在Python中遍历列表的方法有多种,
以下为常用 的两种
for 循环遍历
语法:
for item in listname:
#输出item
其中,item用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可
listname为列表名称
使用for循环和enumerate()函数实现
语法:
for index,item in enumerate(listname):
#输出index和item
参数说明:
index 用于保存元素的索引
item 用于保存获取到的元素值,要实处元素内容时,直接输出该变量即可
listname为列表名称
# 使用for循环遍历列表示例:
# a = ["春天","夏天","秋天","冬天","东","南","西","北"]
# for i in a:
# print (i,end="")
# 使用for循环和enumerate()函数实现
# a = ["春天","夏天","秋天","冬天","东","南","西","北"]
# for index,i in enumerate(a):
# print (index +1,i)
# 分两列显示列表示例:
# a = ["春天","夏天","秋天","冬天","东","南","西","北"]
# for index, i in enumerate(a):
# if index % 2 ==0:
# print (i + "\t\t",end='') # \t 是制表符
# else:
# print (i + "\n")
添加 修改和删除列表元素
添加 修改和删除列表元素也陈伟更新列表.
添加元素 append() insert() extend()
之前有学到可以通过 + 号将两个序列连接,通过该方法也可以实现未列表添加元素.但是这个方法执行速度要比直接使用列表对象
的append()方法慢,所以建议使用append()实现.
insert()该方法用于向指定位置插入元素,但是执行效率没有append高.
extend()用于将一个列表中的全部元素添加到另一个列表中.
append()格式:
listname.append(obj)
其中listname为要添加元素的列表名称,obj为要提阿尼啊到列表末尾的对象
extend()格式:
listname.extend(seq)
其中listname为原列表,seq为要添加的列表.语句执行后seq的内容将追加到listname的后面.
# append()添加元素示例
# a = ["春天","夏天","秋天","冬天"]
# len(a)
# a.append("四季")
# len(a)
# print (a)
# extend()添加元素示例
# a = ["春天","夏天","秋天","冬天"]
# b = ["东","南","西","北"]
# a.extend(b)
# print(a)
修改元素
修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可.
# 修改元素示例:
# a = ["春天","夏天","秋天","冬天"]
# print(a)
# a[3]= "你猜"
# print(a)
删除元素
删除元素有两种情况,一种是根据索引删除,另一种是根据元素值进行删除
根据索引删除
使用del语句实现
语法:
del 列表名[索引值]
根据元素值删除
使用列表对象的remove()方法实现
语法:
列表名.remove("元素内容")
使用remove删除元素时,如果指定元素不存在,将会出现异常信息,所以在使用remove方法删除元素前,最好判断该元素是否存在
# 根据索引删除示例:
# a = ["春天","夏天","秋天","冬天"]
# del a[0]
# print(a)
# 根据元素值删除示例1:
# a = ["春天","夏天","秋天","冬天"]
# shanchu = "夏天"
# if shanchu in a:
# a.remove(shanchu)
# print(a)
# 根据元素值删除示例2:
# a = ["春天","夏天","秋天","冬天"]
# shanchu = "冬天"
# if a.count(shanchu) >0:
# a.remove(shanchu)
# print(a)
对列表进行统计和计算
获取指定元素出现的次数
count()
语法:
listname.count(obj)
其中listname 表示列表的名称
obj 表示要判断是否存在的对象,这里只能精确匹配,即不能是元素的一部分
返回值 元素在列表中出现的次数
获取指定元素首次出现的下标
index()
语法:
listname.index(obj)
其中listname 表示列表的名称
obj 表示要查找的对象,这里只能精确匹配,即不能是元素的一部分,如果对象不存在,则会抛出异常
返回值 首次出现的索引值
统计数值列表的元素和
Python中,提供了sum()函数用于统计数值列表中各元素的和.
语法:
sum(iterable[,start])
iterable 表示要统计的列表
start 表示统计结果是从哪个数开始,如果不指定,默认值为0
# 获取指定元素出现的次数示例:
# a = ["春天","夏天","秋天","冬天","秋天","冬天","春天","夏天","秋天"]
# tongji = a.count('冬天')
# print(tongji)
# 获取指定元素首次出现的下标示例:
# a = ["春天","夏天","秋天","冬天","秋天","冬天","春天","夏天","秋天"]
# suoyin = a.index("冬天")
# print(suoyin)
# 统计数值列表的元素和示例:
# fenshu = [90,80,99,85,94,65]
# tongji =sum(fenshu)
# print(tongji)
对列表进行排序
PYthon中提供了两种常用的对列表进行排序的方法,使用列表对象的sort()方法,使用内置的sortd(函数)
sort() 原列表中的元素顺序发生改变 (sort对中文的支持不太好)
语法:
列表名.sort(key=None,reverse=False)
key 表示指定从每个元素中提取一个用于比较的键(例如,设置"key=str.lower"表示在排序是不区分字母大小写)
reverse 可选参数,True表示降序排列,False表示升序排列,默认为升序排列
sorted() 原列表中的元素顺序不变
语法:
sorted(列表名,key=None,reverse=False)
key 表示指定从每个元素中提取一个用于比较的键(例如,设置"key=str.lower"表示在排序是不区分字母大小写)
reverse 可选参数,True表示降序排列,False表示升序排列,默认为升序排列
以上2个方法的作用基本相同,但是sort()方法会改变原列表的元素排列顺序,而stored()会建立一个原列表的副本,该副本为排序
后的列表
# sort()示例 原列表中的元素顺序发生改变
# fenshu = [90,80,99,85,94,65]
# fenshu.sort(key=None)
# print(fenshu)
# sorted()示例 原列表中的元素顺序不变
# fenshu = [90,80,99,85,94,65]
# fenshu_fb = sorted(fenshu,key=None)
# print("原列表",fenshu)
# print("新列表",fenshu_fb)
列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表.列表推导式通常有以下几种常用的语法格式
1.生成指定范围的数值列表
语法:
list = [Expression for var in range]
list 表示生成的列表名称
Expression 表达式,用于计算新列表的元素
var 循环变量
range 采用range()函数生成的range对象
2.根据列表生成指定需求的列表
语法:
newlist = [Expression for var in list]
newlist 表示新生成的列表名称
Expression 表达式,用于计算新列表的元素
var 循环变量
list 用于生成新列表的原列表
3.从列表中选择符合条件的元组组成新的列表
语法:
newlist = [Expression for var in list if condition]
newlist 表示新生成的列表名称
Expression 表达式,用于计算新列表的元素
var 循环变量
list 用于生成新列表的原列表
condition 条件表达式,用于指定筛选条件
# 1.生成指定范围的数值列表示例
# import random
# # a = [random.randint(10,100) for i in range(10)]
# # print(a)
# 2.根据列表生成指定需求的列表:定义一个列表,然后用列表推导式生成一个将全部元素减半的列表
# import random
# a = [random.randint(100,1000) for i in range(10)]
# print('原列表',a)
# b = [x*0.5 for x in a]
# print('新列表',b)
# 3.从列表中选择符合条件的元组组成新的列表
# a = [142, 322, 204, 617, 304, 353, 264, 786, 582, 799]
# b = [i for i in a if i >= 500]
# print(b)
二维列表的使用
在Python中,由于列表元素还可以是列表,所以它也支持二维列表的概念.
二维列表中的信息以行和列的形式表示,第一个下标表示元素所在的行,第二个下标表示元素所在的列.
在Python中,创建二维列表有以下三种常用的方法.
1.直接定义二维列表
语法:
listname = [[元素11,元素12,元素13,...,元素1n],
[元素21,元素22,元素23,...,元素2n],
...
[元素n1,元素n2,元素n3,...,元素nn]]
2.使用嵌套的for循环创建
arr = [] #创建一个空列表
for i in range(4):
arr.append([]) #在空列表中再添加一个空列表
for j in range(5):
arr[i].append(j) #为内层列表添加元素
print(arr)
3.使用列表推导式创建
erwei = [[i for i in range(5)] for j in range(4)]
print(erwei)
# 使用二维列表输出不同版式的古诗
# zfc1 = "千山鸟飞绝"
# zfc2 = "万径人踪灭"
# zfc3 = "孤舟蓑笠翁"
# zfc4 = "独钓寒江雪"
# test = [list(zfc1),list(zfc2),list(zfc3),list(zfc4) ]
# for i in range(4):
# for j in range(5):
# if j == 4:
# print(test[i][j])
# else:
# print(test[i][j],end='')
# test.reverse()
# print('---'* 30)
# for i in range(5):
# for j in range(4):
# if j == 3:
# print(test[j][i])
# else:
# print(test[j][i],end='')
网友评论