Python中的列表和歌曲列表类似,也是由一系列按特定顺序排列的元素组成。
一.列表的创建和删除
①使用赋值运算符直接创建列表
(1)语法格式
listname = [element 1,element 2,element 3,...,element n]
listname
:列表的名称;
element:列表的元素。
(2)举例
num = [7, 14, 21, 28, 35, 42, 49]
python = ["优雅", "明确", "简单"]
②创建空列表
emptylist = []
③创建数值列表
在Python中,可以使用list()函数直接将range()函数循环出来的结果转换为列表
(1)语法格式
list(data)
data:表示可以转换为列表的数据,其类型可以是range对象、字符串、元组或者其他类型的数据
(2)举例
# -- coding: utf-8 --
print(list(range(10, 20, 2)))
④删除列表
对于已经创建的列表,当不再使用时,可以使用del语句删除它
(1)语法格式
del listname
(2)举例
num = [7, 14, 21, 28, 35, 42, 49]
del num
二.访问列表元素
在Python中如果想输入列表内容,可以直接使用print()函数。
(1)语法格式
print(untitle)
(2)举例
# -- coding: utf-8 --
num = [7, 14, 21, 28, 35, 42, 49]
print(num)
三.遍历列表
①直接使用for循环实现
(1)语法格式
for item in listname:
# 输出item
(2)举例
# -- coding: utf-8 --
print(" " * 2, "秋词")
verse = ["自古逢秋悲寂寥", "我言秋日胜春朝", "晴空一鹤排云上", "便引诗情到碧霄"]
for item in verse:
print(item)
②使用for循环和enumberate
()函数实现
(1)语法格式
for index,item in enmuerate(listname):
# 输出index和item
index:用于保存元素的索引
item:用于保存获取到的元素值
(2)举例
# -- coding: utf-8 --
# -- coding: utf-8 --
print(" " * 3, "秋词")
verse = ["自古逢秋悲寂寥", "我言秋日胜春朝", "晴空一鹤排云上", "便引诗情到碧霄"]
for index, item in enumerate(verse):
print(index, item)
四.添加、修改和删除列表元素
①添加元素
使用列表对象的append()方法来实现,该方法用于在列表的末尾追加元素。
(1)语法格式
listname.append(obj)
(2)举例
# -- coding: utf-8 --
print(" " * 3, "秋词")
verse = ["自古逢秋悲寂寥", "我言秋日胜春朝", "晴空一鹤排云上", "便引诗情到碧霄"]
verse.append("此诗句为刘禹锡所作")
print(verse)
②修改元素
只需要通过索引获取该元素,然后重新赋值即可
# -- coding: utf-8 --
verse = ["长亭外", "古道边", "芳草碧连天"]
print(verse)
verse[2] = "一行白鹭上青天"
print(verse)
③删除元素
(1)根据索引进行删除
# -- coding: utf-8 --
verse = ["长亭外", "古道边", "芳草碧连天"]
del verse[-1]
print(verse)
(2)根据元素值进行删除
如果要删除一个不确定其位置的元素(即根据元素值进行删除),则需要使用列表对象的remove()来实现这一操作。
# -- coding: utf-8 --
verse = ["长亭外", "古道边", "芳草碧连天"]
verse.remove("古道边")
print(verse)
如果指定的元素不存在,则抛出ValueError异常
# -- coding: utf-8 --
verse = ["长亭外", "古道边", "芳草碧连天"]
verse.remove("黄谋人")
print(verse)
五.对列表进行统计计算
①获取指定元素出现的次数
使用count()方法可以获取指定元素在列表中出现的次数
(1)语法形式
listname.count(obj)
(2)举例
# -- coding: utf-8 --
# -- coding: utf-8 --
verse = ["长亭外", "古道边", "小远", "芳草碧连天", "小远"]
num = verse.count("小远")
print(num)
②获取指定元素出现的索引位置
使用index()方法可以获取指定元素首次出现的索引位置
(1)语法形式
listname.index(obj)
(2)举例
# -- coding: utf-8 --
# -- coding: utf-8 --
verse = ["长亭外", "古道边", "小远", "芳草碧连天", "小远"]
position = verse.index("小远")
print(position)
③统计数值列表的元素和
sum()函数用于统计数值列表中各元素的和
(1)语法形式
sum(iterable[,start])
iterable
:表示要统计的列表
start:表示统计结果从哪个数开始的。如果没有指定其值,则默认为0.
(2)举例
# -- coding: utf-8 --
grade = [98, 99, 96, 97, 94, 89]
total = sum(grade)
print("数学总成绩为", total)
六.对列表进行排序
①使用列表对象的sort()方法实现对列表进行排序
列表对象提供了sort()方法,用于对原列表进行排序。
(1)语法形式
listname.sort(key = None, reverse = False)
listname:
表示要进行排序的列表名称
key:表示指定一个从每个列表元素中提取一个比较键。
reverse:可选参数,如果为True,则为降序排序;如果为False,则为升序排列。
默认为升序排列
(2)举例
# -- coding: utf-8 --
grade = [98, 99, 96, 97, 94, 89]
print("原列表:", grade)
grade.sort()
print("升 序:", grade)
grade.sort(reverse=True)
print("降 序:", grade)
char = ['cat', 'Tom', 'Angela', 'pet']
char.sort()
print("区分字母大小写:", char)
char.sort(key=str.lower)
print("不区分字母大小写:", char)
②使用内置的sorted()函数实现对列表进行排序
Python中提供了一个内置的sort()函数,使用该函数进行排序,原列表中的元素顺序不变
(1)语法形式
sorted(iterable,key=None,reverse=False)
iterable
:表示要进行排序的列表的名称
key:表示指定从每个元素中提取一个用于比较的键(例如:key=str.lower
表示排序时候不区分大小写)
reverse:可选参数,如果为True,则为降序排序;如果为False,则为升序排列。
默认为升序排列
(2)举例
# -- coding: utf-8 --
grade = [98, 99, 96, 97, 94, 89]
print("原序列:", grade)
grade_as = sorted(grade)
print("升 序:", grade_as)
grade_des = sorted(grade,reverse=True)
print("降 序:", grade_des)
七.列表推导式
①生成指定范围的数值列表
(1)语法形式
list = [Expression for var in range]
list:表示列表的名称
Expression:表达式,用于计算新列表的元素
var:循环变量
range:采用range()函数生成range对象。
(2)举例
# -- coding: utf-8 --
import random
random_number = [random.randint(10, 100) for i in range(10)]
print("生成的10-100的随机数为:", random_number)
②根据列表生成指定需求的列表
(1)语法形式
newlist = [Expresion for var in list]
(2)举例
# -- coding: utf-8 --
price = [1200, 5330, 2988, 6200, 1998, 8888]
sale = [int(x * 0.5) for x in price]
print("原价格:", price)
print("打五折的价格:", sale)
③从列表中选择符合条件的元素组成新的列表
(1)语法格式
newlist = [Expression for var in list if condition]
(2)举例
# -- coding: utf-8 --
price = [1200, 5330, 2988, 6200, 1998, 8888]
sale = [x for x in price if x>5000]
print("原价格:", price)
print("价格高于5000的:", sale)
八.二维列表
二维列表是一种数据结构,其实质上是列表的列表,即列表中的每个元素本身也是一个列表。
①直接定义二维列表
(1)语法形式
listname = [
[元素11,元素12,元素13,..,元素1n],
[元素21,元素22,元素23,..,元素2n],
...,
[元素n1,元素n2,元素n3,..,元素nn]
]
(2)举例
# -- coding: utf-8 --
students = [
['ID001', '无心', 100, 99, 99],
['ID002', '明日', 99, 100, 97],
['ID003', '冷冷', 98, 99, 98]
]
print(students)
②使用嵌套的for循环创建
arr=[]
for i in range(4):
arr.append([])
for j in range(5):
arr[i].append(j)
print(arr)
③使用列表推导式进行创建
使用列表推导式创建二维列表
rows, cols = 3, 3
matrix = [[0 for _ in range(cols)] for _ in range(rows)]