Python基础学习04
本节内容
- 初步感知列表数据类型
- 列表的定义
- 对列表常用的操作
- 常用内置函数
- 案例应用
背景
-
前面我们学过的数据类型包括整数(integer)、浮点型(float)、字符型(string)、布尔型(Boolean),
这些类型以经无法在满足我们后期编程需求。
-
上述类型定义的变量,在大多数场景以及无法满足
-
例如,需要统计抛两个色子1000次并记录每两个色子和的情况出现的次数
import random
# 记录2~12每一种情况出现的次数用字母a~l变量记录
a, b, c, d, e, f,h,i,j,k,l= 0, 0, 0, 0, 0, 0,0,0,0,0,0
for _ in range(60000):
num1 = random.randint(1, 7)
num2 = random.randint(1, 7)
if num1+num2 == 2:
a += 1
elif num1+num2 == 3:
b += 1
elif num1+num2 == 4:
c += 1
elif num1+num2 == 5:
d += 1
elif num1 +num2== 6:
e += 1
elif num1+num2==7 :
f+=1
elif num1+num2==8 :
h+=1
elif num1+num2==9:
i+=1
elif num1+num2 ==10 :
j+=1
elif num1+num2 ==11:
k+=1
else:
l+=1
上述代码其实并不难,大部分都在写重复的代码。这样的代码看起来非常不美观,变量多到后期修改也会造成大量的负担。
- 对上述代码的改进
import random
# 计数1~6每一个值出现的次数
# fs = [0, 0, 0, 0, 0, 0]
fs = [0]*6 # 列表的重复运算
for _ in range(60000):
face = random.randrange(1, 7)
fs[face - 1] += 1 # 出现对于值加1
实现和上面一样的功能,从代码量看起来就少了许多。同时,这里只定义了1个变量来存储统计,代码看起来更加直观。
初步感知列表数据类型
-
容器型数据类型(用一个变量保存多个数据)
-
变量命名规则,英文单词加复数形,表示一个容器型数据类型
-
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
-
Python有6个序列的内置类型,但最常见的是列表和元组。
列表的定义
- 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
# 创建一个空列表
l=[]
# 列表中的元素用英文下的","隔开
l=['中国','我','爱','你!']
# 列表的重复运算
l=[0]*10
对列表常用的操作
- 列表的遍历
# 定义一个列表
nums=[1,2,3,5,3]
# 用type()查看数据类型
print(type(nums))
# 一次性输出
print(nums)
'''
打印结果如下:
<class 'list'>
[1, 2, 3, 5, 3]
'''
- 利用循环一个个打印
# 方法一
# 只读循环、不可以修改
for num in nums:
print(num)
# 方法二
# len()函数获取列表中元素给个数
for i in range(len(nums)):
nums[i]=100
# 方法三
# 通过enumerate()函数对列表进行预处理
# 可以同时获取元素的索引(index)和元素(values)
for i, x in enumerate(nums):
print(i + 1, x)
- 对列表中元素的修改
# 通过小标索引对元素的修改,下标元素索引从零开始到个数减一结束
l=[1,2,3,4,5]
# 对第3个元素修改
l[2]=5
常用内置函数
- 以下是列表常用方法
- append()函数对列表进行追加,加入一个新的元素到列表末尾
nums=[1,2,3,5,3]
nums.append(6)
print(nums)
# [1, 2, 3, 5, 3, 6]
- pop()函数默认删除列表最后一个元素
nums=[1,2,3,5,3]
nums.pop()
print(nums)
# [1, 2, 3, 5]
- count()函数统计列表中某个元素出现的次数,没有返回0
nums=[1,2,3,5,3,3,3,]
print(nums.count(3))
# 4
- 对列表中元素进行求和
nums=[1,2,3,4,5]
print(sum(nums))
# 15
- 求列表中元素最大、最小值
nums=[1,2,3,4,5]
print(max(nums)) # 5
print(min(nums)) # 1
对于其它列表操作用法,在用的时候在进行详细了解即可
案例应用
- 输入10个整数计算平均值、方差、标准差、最大值、最小值
# 描述性统计--> 可以获得总体的情况
# 推断性统计--> 只能获得样本,通过样本去推断总体
# 方差-->variance
# 标准差--> standard deviation --->std/stdev
nums=[]
for _ in range(10):
num=int(input('输入:'))
nums.append(num)
# 最大值
min_value=min(nums)
# 最小值
max_value=max(nums)
total=0
for num in nums:
total+=num
# 平均值
mean_value=total/len(nums)
# 极差
poor = max_value-min_value
# 方差
total=0
for num in nums:
total+=(num-mean_value)**2
var_value=total/(len(nums)-1)
# 标准差
std_value=var_value**0.5
print(nums)
print(f'最大值:{max_value} 最小值:{min_value}')
print(f'平均值:{mean_value} 极差:{poor}')
print(f'标准差:{var_value:.3f} 方差:{std_value:.3f}') # :.3f表示保留三位小数
总结
列表数据类型在以后编程应用的十分广范列表非常的灵活,它可以存储任意类型的数据类型!最后,对于初学者一定要通过大量练习来感知列表的灵活性。