python的组合数据类型-集合、序列与基本统计值计算案例--python-10-days

本文详细介绍了Python中的组合数据类型,包括集合的创建、操作符和处理函数,以及序列(元组和列表)的特性和操作。特别强调了集合在数据去重中的应用和序列在数据表示、遍历与保护中的作用。同时,探讨了基本统计值计算,如求和、平均数、方差和中位数等。

组合数据类型

组合数据: 从一个数据到一组数据,表达一个含义或多个含义
集合、序列(元组、列表)、字典
集合是多个元素的无序组合

集合:无序、唯一、不可变

  • 集合类型与数学中的集合概念一致
  • 集合元素之间无序,每个元素唯一,不存在相同元素
  • 集合元素不可更改,不能是可变数据类型

集合的表示与创建

  • 集合用大括号 {} 表示,元素间用逗号分隔
  • 建立集合类型用 {} 或 set()
  • 建立空集合类型,必须使用set()
>>> A = {"python", 123, ("python",123)} #使用{}建立集合
{123, 'python', ('python', 123)}
>>> B = set("pypy123") #使用set()建立集合
{'1', 'p', '2', '3', 'y'}
>>> C = {"python", 123, "python",123}
{'python', 123}

集合操作符:交(&)、并(|)、差(-)、补(^)、比较(>=<)

  • 6个基本操作符
    在这里插入图片描述
  • 4个增强操作符
    在这里插入图片描述

8个集合处理函数

在这里插入图片描述
在这里插入图片描述

集合经典应用场景:数据去重

  • 包含关系比较
>>> "p" in {"p","y" , 123}
True
>>> {"p","y"} >= {"p","y" , 123}
False
  • 数据去重:集合类型所有元素无重复
>>> ls = ["p","p","y","y", 123]
>>> s = set(ls) # 利用了集合无重复元素的特点
{'p', 'y', 123}
>>> lt = list(s) # 还可以将集合转换为列表
['p', 'y', 123]

序列

序列类型定义:

序列是具有先后关系的一组元素

  • 序列是一维元素向量,元素类型可以不同
  • 类似数学元素序列: s0, s1, … , sn-1
  • 元素间由序号引导,通过下标访问序列的特定元素

序列是一个基类类型

在这里插入图片描述
在这里插入图片描述

序列处理函数及方法

6个操作符

在这里插入图片描述

5个函数

在这里插入图片描述

元组类型及操作

元组是序列类型的一种扩展

  • 元组是一种序列类型,一旦创建就不能被修改
  • 使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔
  • 可以使用或不使用小括号
>>> creature = "cat","dog","tiger","human"
>>> creature
('cat', 'dog', 'tiger', 'human')
>>> color = (0x001100, "blue", creature)
>>> color
(4352, 'blue', ('cat', 'dog', 'tiger', 'human'))

元组继承序列类型的全部通用操作

  • 元组继承了序列类型的全部通用操作
  • 元组因为创建后不能修改,因此没有特殊操作
  • 使用或不使用小括号

列表类型及操作

列表是序列类型的一种扩展,十分常用

  • 列表是一种序列类型,创建后可以随意被修改
  • 使用方括号 [] 或list() 创建,元素间用逗号 , 分隔
  • 列表中各元素类型可以不同,无长度限制
    在这里插入图片描述

列表类型操作函数

6个基本操作符

在这里插入图片描述

7个函数

在这里插入图片描述

 定义空列表lt
 向lt新增5个元素
 修改lt中第2个元素
 向lt中第2个位置增加一个元素
 从lt中第1个位置删除一个元素
 删除lt中第1-3位置元素
 判断lt中是否包含数字0
 向lt新增数字0
 返回数字0所在lt中的索引
 lt的长度
 lt中最大元素
 清空lt
>>> lt = []
>>> lt += [1,2,3,4,5]
>>> lt[2] = 6
>>> lt.insert(2, 7)
>>> del lt[1]
>>> del lt[1:4]
>>> 0 in lt
>>> lt.append(0)
>>> lt.index(0)
>>> len(lt)
>>> max(lt)
>>> lt.clear()

序列类型应用场景

数据表示:元组、列表

  • 元组用于元素不改变的应用场景,更多用于固定搭配场景
  • 列表更加灵活,它是最常用的序列类型
  • 最主要作用:表示一组有序数据,进而操作它们

元素遍历

for item in ls :
	<语句块>
for item in tp :
	<语句块>

数据保护

  • 如果不希望数据被程序所改变,转换成元组类型
>>> ls = ["cat","dog","tiger", 1024]
>>> lt = tuple(ls)
>>> lt
('cat', 'dog', 'tiger', 1024)

基本统计值计算

问题:给出一组数,对他们有个概要理解

总个数、求和、平均数、方差、中位数……

基本统计值分析

  • 总个数:len()
  • 求和:for … in
  • 平均值:求和/总个数
  • 方差:
    各数据与平均数差的平方和的平均数
  • 中位数:排序,然后…
    奇数找中间1个,偶数找中间2个取平均
# CalStatistic.py
# coding=gbk
def getNum():
	nums = []
	iNumStr = input("请输入数字(回车退出):")
	while iNumStr != "":
		nums.append(eval(iNumStr))
		iNumStr = input("请输入数字(回车退出):")
	return nums

def mean(numbers):
	s = 0.0 
	for num in numbers:
		s = s + num
	return s/len(numbers)

def dev(numbers,mean):
	sdev = 0.0
	for num in numbers:
		sdev += (num-mean)**2
	return pow(sdev/(len(numbers)-1),0.5)

def median(numbers):
	sorted(numbers)
	size = len(numbers)
	if size%2 == 0 :
		med = (numbers[size//2 - 1] + numbers[size//2])/2
	else:
		med = numbers[size//2]
	return med

n = getNum()
m = mean(n)
print("平均值:{},方差:{},中位数:{}".format(m,dev(n,m),median(n)))

举一反三

技术能力扩展

  • 获取多个数据:从控制台获取多个不确定数据的方法
  • 分隔多个函数:模块化设计方法
  • 充分利用函数:充分利用Python提供的内置函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值