Python学习第四天:列表的初次见面
在经过练习分支结构与循环结构的综合利用后,我们基本上已经可以应对一些简单的循环分支的代码题。
例如:将一颗骰子掷60000次,统计每一面出现的次数
"""
example01 - 将一颗骰子掷60000次,统计每一面出现的次数
import random:导入random包
random.randrange(1, 7) ---> 用1-6的随机数模拟掷骰子
Author:悾格
Date: 2021/7/23
"""
import random
f1, f2, f3, f4, f5, f6 = 0, 0, 0, 0, 0, 0
total = 0
for _ in range(0, 60000):
time = random.randrange(1, 7)
if time == 1: # 当骰子掷到1时,f1加1,以此类推
f1 += 1
elif time == 2:
f2 += 1
elif time == 3:
f3 += 1
elif time == 4:
f4 += 1
elif time == 5:
f5 += 1
else:
f6 += 1
print(f'掷到1的次数:{f1}')
print(f'掷到2的次数:{f2}')
print(f'掷到3的次数:{f3}')
print(f'掷到4的次数:{f4}')
print(f'掷到5的次数:{f5}')
print(f'掷到6的次数:{f6}')
上面的代码就是我自己根据分支循环写出的代码,由上可以看出我们现在写出的代码就目前而言感觉还好,但是当我们更近一步更改题目要求
如:将两颗骰子掷60000次,统计每一面出现的次数
mport random
f2, f3, f4, f5, f6 = 0, 0, 0, 0, 0
f7, f8, f9, f10, f11, f12 = 0, 0, 0, 0, 0, 0
total = 0
for _ in range(0, 60000):
time1 = random.randrange(1, 7)
time2 = random.randrange(1, 7)
if time1 + time2 == 2:
f2 += 1
elif time1 + time2 == 3:
f3 += 1
elif time1 + time2 == 4:
f4 += 1
elif time1 + time2 == 5:
f5 += 1
elif time1 + time2 == 6:
f6 += 1
elif time1 + time2 == 7:
f7 += 1
elif time1 + time2 == 8:
f8 += 1
elif time1 + time2 == 9:
f9 += 1
elif time1 + time2 == 10:
f10 += 1
elif time1 + time2 == 11:
f11 += 1
else:
f12 += 1
print(f'掷到2的次数:{f2}')
print(f'掷到3的次数:{f3}')
print(f'掷到4的次数:{f4}')
print(f'掷到5的次数:{f5}')
print(f'掷到6的次数:{f6}')
print(f'掷到7的次数:{f7}')
print(f'掷到8的次数:{f8}')
print(f'掷到9的次数:{f9}')
print(f'掷到10的次数:{f10}')
print(f'掷到11的次数:{f11}')
print(f'掷到12的次数:{f12}')
一比较,两个代码之间没有多大的区别,用的方法也是差不多的,主要是在于我们需要定义的量变多了
因此,我们就引入了列表
# 一个骰子
# a = [0, 0, 0, 0, 0, 0]
a = [0] * 6
for _ in range(60000):
face = random.randrange(1, 7)
a[face - 1] += 1
for i, value in enumerate(a):
print(f'{i + 1}点摇出了{value}次')
print(f'{a}')
# 两个骰子
# a = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
b = [0] * 11
for _ in range(120000):
face1 = random.randrange(1, 7)
face2 = random.randrange(1, 7)
face = face1 + face2
b[face - 2] += 1
for i, value in enumerate(b):
print(f'{i + 2}点摇出了{value}次')
print(f'{b}')
容器型数据类型(用一个变量可以保存多个数据)
- 列表(list) ----> 1.元素过长时,可以进行换行缩进,不影响列表中的元素
- 元组(tuple)
- 集合(set)
- 字典(dict)
"""
example02 - 容器型数据类型(用一个变量可以保存多个数据)
Author:悾格
Date: 2021/7/23
"""
# 创建列表的自变量语法
num = [10, 100, 1000]
rules = ['加油', '开心', '快乐', '高兴', '激动']
# 追加元素(把元素加到列表的末尾)
num.append(100)
# 插入元素(在指定位置插入元素)
num.insert(0, 1)
print(num)
# 删除元素(默认删除最后一个元素)
rules.pop()
rules.pop()
print(rules)
# 列表的遍历(把每个元素依次取出)
"""
example03 - 列表的遍历(把每个元素依次取出来)
Author:悾格
Date: 2021/7/23
"""
# 正向索引:列表从头部开始算起,以0为下标,依次增加;
# 反向索引:从未部开始,以-1为下标,依次减小
num = [35, 98, 12, 27, 66]
# print(num[0], num[-2])
for i in range(len(num)):
print(num[i])
num[i] += 1
print(num[i])
print(num)
# 对列表进行读操作的for循环,无序号
for x in num:
print(x)
# 有序号
# 先通过enumerate函数对列表进行预处理
# 循环遍历的时候既可以获取到索引(下标)又可以获取到元素
for i, x in enumerate(num):
print(i, x)
# 对列表进行读写操作的for循环,有序号
for i in range(len(num)):
print(num[i])
num[i] = 100
print(num)