列表
[元素1, 元素2, … ,元素N] 注:中括号[ ],逗号隔开
1.列表的创建和删除
(1)使用赋值运算符直接创建列表 | listname = [element1,element2, ......, elementN] |
(2)创建空列表 | emptylist = [ ] |
(3)创建数值列表 | list(range(10,20,2)) |
(4)删除列表 | del listname |
注2:list(data) 转化为列表,data的类型可以是range对象、字符串、元组或其他可迭代类型的数据。
2.访问列表元素
python = ['Python',28,'人生苦短,我用Python',['爬虫','自动化','云计算']] | |
(1)直接用print()函数输出 | print(python) |
(2)索引 | print(python[2]) |
(3)切片 | print(python[1:3]) print(python[:]) = print(python) |
python = ['Python',28,'人生苦短,我用Python',['爬虫','自动化','云计算']]
print(python) #输出:['Python', 28, '人生苦短,我用Python', ['爬虫', '自动化', '云计算']]
print(python[:]) #输出:['Python', 28, '人生苦短,我用Python', ['爬虫', '自动化', '云计算']]
print(python[2]) #输出:人生苦短,我用Python
print(python[1:3]) #输出:[28, '人生苦短,我用Python']
3.遍历列表
(1)直接使用for循环 | for item in listname: 注:冒号 print(item) |
(2)使用for循环和enumerate( )函数 | for index, item in enumerate(listname): print(index,item) |
python = ['Python',28,'人生苦短,我用Python',['爬虫','自动化','云计算']]
for item in python:
print(item)
'''
输出:
Python
28
人生苦短,我用Python
['爬虫', '自动化', '云计算']
'''
python = ['Python',28,'人生苦短,我用Python',['爬虫','自动化','云计算']]
for index, item in enumerate(python):
print(index,item)
'''
输出:
0 Python
1 28
2 人生苦短,我用Python
3 ['爬虫', '自动化', '云计算']
'''
4.添加、修改和删除列表元素
(1)添加列表元素 | 末尾追加 | listname.append(obj) |
指定位置插入元素 | listname.insert(index, obj) | |
将一个列表中的全部元素添加到另一个列表 | listname.extend(seq) 注:listname:原列表 seq:要添加的列表 | |
(2)修改元素 | listname[index] = obj | |
(3)删除元素 | 根据索引删除,必须知道删除元素的位置 | del listname[index] |
根据值删除,删除之前先判断该值是否在列表中 | if listname.count(obj) > 0: listname.remove(obj) print(listname) |
#(1)添加列表元素
python = ['Python',28,'人生苦短,我用Python']
python.append('C++')
print(python)
python.insert(0,'C语言') #输出:['Python', 28, '人生苦短,我用Python', 'C++']
print(python) #输出:['C语言', 'Python', 28, '人生苦短,我用Python', 'C++']
musicians = ['贝多芬','伯牙','李龟年']
python.extend(musicians)
print(python) #输出:['C语言', 'Python', 28, '人生苦短,我用Python', 'C++', '贝多芬', '伯牙', '李龟年']
#(2)修改元素
python = ['Python',28,'人生苦短,我用Python']
python[1] = 'C语言'
print(python) #输出:['Python', 'C语言', '人生苦短,我用Python']
#(3)删除元素
python = ['Python',28,'人生苦短,我用Python']
del python[1] #输出:['Python', '人生苦短,我用Python']
print(python)
if python.count('Python') > 0:
python.remove('Python')
print(python) #输出:['人生苦短,我用Python']
5.对列表进行统计计算 count( )、index( )、sum( )
(1)获取指定元素出现的次数 | listname.count(obj) |
(2)获取指定元素首次出现的下标 | listname.index(obj) |
(3)统计数值列表的元素和 | sum(listname) sum(listname, 100) = sum(listname)+100 |
6.对列表进行排序
(1)使用列表对象的sort( )方法实现 注:原列表改变 | 数值列表升序排列 | listname.sort( ) |
数值列表j降序排列 | listname.sort(reverse = True ) | |
字母列表先大写后小写 | listname.sort( ) | |
字母列表不区分大小写 | listname.sort(key = str.lower) | |
(2)使用内置的sorte( )函数实现 注:原列表不改变 | ||
数值列表升序排列 | listname2 = sorted(listname1) | |
数值列表降序排列 | listname2 = sorted(listname1, reverse = True) | |
字母列表先大写后小写 | listname2 = sorted(listname1 ) | |
字母列表不区分大小写 | listname2 = sorted(listname1, key = str.lower) |
7.列表推导式
(1)生成指定范围的数值列表 | list=[Expression for var in range] |
(2)根据列表生成指定需求的列表 | list=[Expression for var in list] |
(3)从列表中选择符合条件的元素形成新列表 | list=[Expression for var in list if condition] |
#(1)生成指定范围的数值列表
import random
A =[random.randint(10,100) for i in range(10)]
print('生成的随机数为',A)
#(2)根据列表生成指定需求的列表
price = [1200,5330,2988,6200,1988,8888]
sale = [int(x*0.5) for x in price] #打了五折
#(3)从列表中选择符合条件的元素形成新列表
price = [1200,5330,2988,6200,1988,8888]
sale = [x for x in price if x>5000] #价格高于5000