Python列表
列表的创建和删除
使用赋值运算符直接创建列表
listname = [element1,element2,element3,...,elementn]
列表中元素的个数没有限制
创建空列表
emptylist = []
创建数值列表
在Python中可以直接使用list()
函数直接将range()
函数循环出来的结果转换为列表
list(data)
data表示可以转换为列表的数据,其类型可以是range对象、字符串、元组或者其他可迭代类型的数据
例如,创建一个10~20之间(不包括20 )所有偶数的列表,可以使用下面的代码:
list(range(10,20,2))
运行上面的代码后,将得到下面的列表:
[10,12,14,16,18]
删除列表
在删除列表前,一定要保证输入的列表名称是已经存在的,否则将会出现错误
del listname
del
语句在实际开发时,并不常用。因为 Python 自带的垃圾回收机制会自动销魂不用的列表,所以即使我们不手动将其删除,Python 也会自动将其回收
访问列表元素
在 Python 中,如果想将列表的内容输出可以直接使用print()
函数
例如要想打印 untitle 列表,可使用下面代码:
>>> untitle = ['Python',28,'人生苦短,我用Python',["爬虫","自动化运维","云计算","Web开发"]]
>>> print(untitle)
['Python', 28, '人生苦短,我用Python', ['爬虫', '自动化运维', '云计算', 'Web开发']]
遍历列表
直接使用for
循环实现
直接使用for循环遍历列表,只能输出元素的值
for item in listname:
# 输出item
其中item
用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可
例如,定义一个保存2018年俄罗斯世界杯四强的列表,然后通过for
循环遍历该列表,并输出各个国家队的名称,代码如下:
>>> team = ['法国','比利时','英格兰','克罗地亚']
>>> for item in team:
print(item)
法国
比利时
英格兰
克罗地亚
使用for
循环和enumerate()
函数实现
使用for
循环和enumerate()
函数可以实现同时输出索引值和元素内容的功能
for index,item in enumerate(listname):
# 输出index和item
添加、删除和修改列表元素
添加元素
列表对象的append()
方法用于在列表末尾添加元素
listnanme.append(obj)
insert()
方法用于向列表的指定位置插入元素
phone.insert(0,"没有手机")
extend()
方法用于将一个列表的全部元素添加到另一个列表中
listname.extend(seq)
- 将 seq 列表添加到前面列表中
修改元素
修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可
删除元素
根据索引删除
del listname[index]
根据元素值删除
列表对象的remove()
方法
listname.remove(obj)
对列表进行统计计算
获取指定元素出现的次数
列表对象count()
方法可以获取指定元素在列表中出现的次数
listname.count(obj)
- obj 这里只能精确匹配,不能只是元素的一部分
获取指定元素首次出现的下标
使用列表对象的index()
方法可以获取指定元素在列表中首次出现的位置
listname.index(obj)
- obj这里只能精确匹配,不能只是元素的一部分
统计数值列表的元素和
sum()
函数用于统计数值列表中个元素的和
sum(iterable[,start])
sum([0,1,2,3,4], 2) # 列表计算总和后再加 2
12
对列表进行排序
使用列表对象的sort()方法实现
列表对象sort()
方法用于对原列表中的元素进行排序,排序后原列表中的元素顺序将发生改变
listname.sort(key=none, reverse=False)
- 排序规则,reverse = True 降序, reverse = False 升序(默认)
使用内置的sorted()函数实现
内置的sorted()函数,用于对列表进行排序,使用该函数进行排序后,原列表的元素顺序不变
sorted(iterable, key=none, reverse=False)
- 排序规则,reverse = True 降序, reverse = False 升序(默认)
列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表
生成指定范围的数值列表
list = [Expression for var in range]
- list:生成列表的名称
- Experssion:表达式,用于计算新列表的元素
- var:循环变量
- range:采用
range()
函数生成的range对象
生成一个包括10个随机数的列表,要求数的范围在10~100(包括)之间
>>> import random # 导入random标准库
>>> randomnumber = [random.randint(10,100) for i in range(10)]
>>> print('生成的随机数为:',randomnumber )
生成的随机数为: [99, 60, 81, 81, 78, 81, 89, 36, 94, 33]
根据列表生成指定需求的列表
newlist = [Expression for var in list]
- newlist:新生成列表的名称
- Expression:表达式,用于计算新列表的元素
- var:变量,值为后面列表的每个元素的值
- list:用于生成新列表的原列表
定义一个记录商品价格的列表,然后应用列表推导式生成一个将全部商品价格打五折的列表
>>> price = [1200,5330,2988,6200,1998,8888]
>>> sale = [int(x*0.5) for x in price]
>>> print(sale)
[600, 2665, 1494, 3100, 999, 4444]
从列表中选择合适的元素组成新的列表
newlist = [Expression for var in list if condition]
- newlist:新生成列表的名称
- Expression:表达式,用于计算新列表的元素
- var:变量,值为后面列表的每个元素的值
- list:用于生成新列表的原列表
- condition:条件表达式,用于指定筛选条件
定义一个记录商品价格的列表,然后应用列表推导式生成一个商品价格高于5000的列表
>>> price = [1200,5330,2988,6200,1998,8888]
>>> sale = [x for x in price if x>5000]
>>> print(sale)
[5330, 6200, 8888]