- 可直接使用*使其重复,需注意 *号需跟整数,意思是代表重复次数。
- 例:
list1=[1, 2, 3 , 4] print(list1*3)
打印结果为 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
2.列表的拼接- 可直接使用+进行拼接。
- 例
list1=[1, 2, 3, 4] list2=[5, 6, 7, 8] print(list1+list2)
打印结果为[1, 2, 3, 4,5, 6, 7, 8]
3.成员运算 : in、not in,运算的结果为布尔值。- 例
print(3 in [1, 2, 3]) print([3] in [1, 2, 3])
打印结果为:True,False
4.比较大小a. 比较大小的元素必须是同类型的
b. 比较大小比较的是第一队不相等元素的大小(容器)
c. 数字正常比较大小
- 例
list1 = [1, 2, 3, 4] list2 = [1, 2, 4, 5] print(list1 < list2) list1 = [1, 2, '3', 4] list2 = [1, 2, '4', 5] print(list1 < list2) list1 = ['1', 2, 3, 4] list2 = [1, 2, 4, 5] # 此段打印结果为:TypeError: '<' not supported between instances of 'str' and 'int' # 不同类型无法作比较
打印结果为:True,True
二、列表的放法和函数 1.获取同类型的最大值或最小值- 例
num = [1, 2, 3, 4] print(max(num)) print(min(num))
打印结果为:1,4
2.count : 统计某个元素的出现个数- 例
num = [1, 2, 3, 4] print(num.count(num[3])) print(num.count(50)) # 没有这个元素则会报 0
打印结果为:1,0
3.sum 求和- 例
num = [1, 2, 3, 4] print(sum(num))
打印结果为:10
4.reverse:将列表倒序,返回值为None,直接修改列表本身。- 例
num = [1, 2, 3, 4] print(num.reverse()) print(num)
打印结果为:[4, 3, 2, 1]
5.sorted:将列表从小到大排序,生成新的列表。 sort:将列表从小到大排序,修改原来的列表。- 例
num1 = [23, 50, 30, 75] print(sorted(num1)) print(sorted(num1, reverse=True)) ''' 结果为 [23, 30, 50, 75] [75, 50, 30, 23] ''' print(num1.sort(reverse=False)) print(num1) print(num1.sort(reverse=True)) print(num1) ''' 结果为 None [23, 30, 50, 75] None [75, 50, 30, 23] '''6.extend():将一个容器中的元素添加到列表中。
- 例
num1.extend('abcde')
print(num1)
num2 = ['a', 7, 8, 9]
num1.extend(num2)
打印结果为:
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]
a. 从左向右查找,找到元素立马停止,返回下标。
b. 如果元素不存在,将会报错。
- 例
num1=[75, 50, 30, 23, 'a', 'b', 'c', 'd', 'e', 'a', 7, 8, 9]
index1 = num1.index('a')
print(index1)
index2 = num1.index('a', 5)
# 从下标为5的元素开始查找
print(index2)
打印结果为元素下标:4,9
练习:不适用 index 方法寻找第二个元素anum1=[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]
total = 0
for i in range(len(num1)):
if num1[i] == 'a':
total += 1
if total == 2:
print(i)
三、列表去重
1. 有一个列表,要求去掉重复的人名
- 例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘张三’,‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]
解析:方法一
names = ['张三', '李四', '大黄', '张三', '张三']
name_list = []
for i in names:
if i not in name_list:
name_list.append(i)
print(name_list)
解析:方法二
names = ['张三', '李四', '大黄', '张三', '张三']
for i in range(len(names),-1,-1):
if i names.count(i)>1:
del names[i]
print(names)
解析:方法三
index=0
while index <= len(names)-1:
if i names.count(i)>1:
del names[index]
else:
index+=1
print(names)
四、列表的推导式(列表的生成式)
-
列表推导式(列表生成式):生成一个有元素的列表
a. 语法1 :[表达式 i for 变量 in rongqi]
for 循环每执行一次,表达式就会将其生成的结果添加到列表中。
例:
(1).将1-100的整数生成一个列表:nums = [i for i in range(1, 101)] print(nums)
打印结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
(2).将10个1生成一个列表:nums = [1 for _ in range(10)]
打印结果为:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
b.append()适用于所有向列表中追加元素的操作;列表推导式在某些情况下可以替代append()import time start = time.time() list1 = [] for i in range(1, 10000001): list1.append(i) end = time.time() print(f'append 方法一共花费{end - start}秒') start = time.time() list2 = [i for i in range(1, 10000001)] end = time.time() print(f'推导式 方法一共花费{end - start}秒')得出结果:性能:列表推导式>append()
c.语法二:[表达式 for 变量 in 容器 if 条件] 注:只能加if,不能在家其他命令
for 循环执行一次,if 分支判断一次,条件成立才会向列表添加元素例:将1-100内偶数生成一个列表:
nums = [i for i in range(1,101) if i % 2 == 0 ] print(nums)
打印结果为:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
d. 语法三:[表达式 for 变量 in 容器 for 变量 in 容器 ] 几乎用不到
例:将1-10打印3次:list4 = [i for _ in range(3) for i in range(1, 11)] print(list4)
打印结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- import random
- randint(a,b) -> 从[a,b]闭区间中随机获取一个整数
- randrange()->约等于randint+range
- 例:
import random # randrange()->约等于randint+range print(random.randrange(1, 4, 2)) # choice()->从容器中随机获取一个元素 print(random.choice([1, 2, 3, 4])) # choices()->从容器中随机获取k个元素,有放回的抽取元素 print(random.choices([1, 2, 3, 4], k=5)) # sample()->从有序容器中无放回的抽取元素,也可以获取k个元素 print(random.sample([1, 2, 3, 4], k=3)) # shffule()->将有序容器随机打乱顺序,无返回值,修改序列本身 list=[1, 2, 3, 4] print(random.shuffle(list)) print(list)
打印结果为:
1
4
[4, 3, 3, 2, 3]
[1, 3, 4]
None
[1, 4, 2, 3]
练习:课堂点名器
names = ['张三','李四','王二','麻子']
random.shuffle(names)
while True:# 此处可进行暗箱操作
result = random.choices(names, k=1)
if result == ['王二']:# 随机至王二在进行输出
break
print(f'被抽中的同学为:{result}')
# 会一直是王二
- 使用PyQt/wxpython等GUI(图形可视化)进行可视化
- 使用pyinstall将程序封装成windows的exe可执行文件



