Python列表
列表的创建和删除
listname = [element1,element2,elment n....]
示例代码,下面定义的列表都是合法的:
list1 = [1, 2, 3, 4, 5]
list2 = ["人生苦短", "我用Python"]
list3 = [12, 34, "再来一次"]
创建空列表
listname = []
创建数值列表
list(data)
示例代码:
list1 = list(range(10, 20, 2))
print(list1)
执行结果:
[10, 12, 14, 16, 18]
删除列表
del listname
访问列表元素
使用下标访问
示例代码:
list1 = ["Java", "Php", "Python", "ruby"]
print(list1[2])
执行结果:
Python
遍历列表
for item in listname:
# 输出item
list1 = [1, 2, 3, 4, "再来", "一次"]
for i in list1:
print(i)
执行结果:
1
2
3
4
再来
一次
输出列表的下标和对应值
使用enumerate()同时输出索引和元素内容
list1 = [1, 2, 3, 4, "再来", "一次"]
for index, item in enumerate(list1):
print("索引:", index, "对应的值:", item)
执行结果:
索引: 0 对应的值: 1
索引: 1 对应的值: 2
索引: 2 对应的值: 3
索引: 3 对应的值: 4
索引: 4 对应的值: 再来
索引: 5 对应的值: 一次
添加、修改和删除列表元素
添加元素
使用append
示例代码:
list1 = [1, 2, 3, 4, "再来", "一次"]
print(len(list1))
list1.append("哇喔")
print(len(list1))
print(list1)
执行结果:
6
7
[1, 2, 3, 4, '再来', '一次', '哇喔']
使用extend
示例代码:
list1 = [1, 2, 3, 4, "再来", "一次"]
list1.extend("12345")
print(list1)
执行结果:
[1, 2, 3, 4, '再来', '一次', '1', '2', '3', '4', '5']
注意到两者的区别了吗append一个字符串不管多长都算一个元素,而extend一个字符算一个元素
修改列表元素
示例代码:
list1 = [1, 2, 3, 4, "再来", "一次"]
list1[1] = 3
print(list1)
执行结果:
[1, 3, 3, 4, '再来', '一次']
删除列表元素
使用del
删除指定下标的值
示例代码:
list1 = [1, 2, 3, 4, "再来", "一次"]
del list1[-1]
print(list1)
执行结果:
[1, 2, 3, 4, '再来']
使用remove()
删除指定值
示例代码:
list1 = [1, 2, 3, 4, "再来", "一次"]
list1.remove(4)
print(list1)
执行结果:
[1, 2, 3, '再来', '一次']
统计列表元素出现的次数
使用.count()
示例代码:
list1 = [1, 2, 3, 4, 1, "再来", "一次"]
count = list1.count(1)
print(count)
执行结果:
2
获取指定元素首次出现的下标
使用.index
示例代码:
list1 = [1, 2, 3, 4, 2, "再来", "一次"]
count = list1.index(2)
print(count)
执行结果:
1
对列表进行排序
使用.sort()
listname.sort(key=None, reverse=False) # 会改动这个列表在排序后面使用被排序list将是排序后的新list
- listname:需要排序的列表名
- key:指定从每个元素提起一个用于比较的键(如:设置key = str.lower),标示在排序时不区分大小写。
- reverse:可选参数,如果将其值指定为True,则标示降序,如果为False,则标示升序排列
示例代码:
list1 = [100, 12, 3, 4, 2.1, 9, 19] # 注意只能数字
list1.sort()
print("升序:", list1)
list1.sort(reverse=True)
print("降序:", list1)
执行结果:
升序: [2.1, 3, 4, 9, 12, 19, 100]
降序: [100, 19, 12, 9, 4, 3, 2.1]
使用sorted()
listname = sorted(iterable, key=None, reverse=False) # 临时排序对赋值的变量有效,在排序后面执行的代码访问被排序的list顺序不发生改变
- listname:需要排序的列表名
- key:指定从每个元素提起一个用于比较的键(如:设置key = str.lower),标示在排序时不区分大小写。
- reverse:可选参数,如果将其值指定为True,则标示降序,如果为False,则标示升序排列
示例代码:
list1 = [100, 12, 3, 4, 2.1, 9, 19] # 注意只能数字
print("原始list:", list1)
new_list = sorted(list1)
print("排序后的list:", new_list)
print("后面再次访问被转换的list将不会发生改变,这就是sort()和sorted()区别:", list1)
执行结果:
原始list: [100, 12, 3, 4, 2.1, 9, 19]
排序后的list: [2.1, 3, 4, 9, 12, 19, 100]
后面再次访问被转换的list将不会发生改变,这就是sort()和sorted()区别: [100, 12, 3, 4, 2.1, 9, 19]
列表推导式
list = [Expression for var in range]
- list: 标示生成的列表名
- Expression :新列表的元素
- var:循环变量
- 需要插入的数量
简单示例:
list1 = [1, 10, 51, 80, 100]
new_list = ["1" for i in range(10)]
print(new_list)
print("长度:", len(new_list))
执行结果:
['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
长度: 10
列表推导式书写形式:
listname = [表达式 for 变量 in 列表] 或者 lsitname = [表达式 for 变量 in 列表 if 条件]
示例代码1:
import random
list1 = [random.randint(10, 100) for i in range(20)] # 列表从10到100,随机取20个元素生成
print(list1)
执行结果:
[75, 44, 68, 91, 36, 92, 74, 71, 96, 66, 68, 13, 33, 66, 42, 29, 28, 27, 57, 42]
示例代码2:
list1 = [1, 10, 51, 80, 100]
new_list = [x for x in list1 if x > 50] # 循环list1如果循环出的值大于50 那么就把这个值插到新列表
print("大于50的有:",new_list)
执行结果:
大于50的有: [51, 80, 100]

浙公网安备 33010602011771号