Python学习之组合数据类型以及基本统计值计算(十二)

集合类型及操作

集合类型定义

集合是多个元素的无序组合

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

集合是多个元素的无序组合
集合用大括号 {} 表示,元素间用逗号分隔
建立集合类型用 {} 或 set{}

示例

>>> A = {"python", 123, ("python",123)} # 使用{}建立集合
>>> print(A)
{123, 'python', ('python', 123)}

>>> B = set("pypy123") # 使用set()建立集合
>>> print (B)
{'3', 'p', 'y', '1', '2'}

>>> C = {"python", 123, "python",123} # 集合无序且不相同
>>> print (C)
{123, 'python'}

集合操作符

6个操作符

在这里插入图片描述

在这里插入图片描述

4个增强操作符

在这里插入图片描述

示例

在这里插入图片描述

集合处理方法

10个常用集合处理方法

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

示例

遍历组合数据类型(for in方式)

>>> A = {"p", "y", 123}
>>> for item in A:
	print(item, end="")

123py
>>> A
{123, 'p', 'y'}

遍历组合数据类型(while方式)

>>> try:
     while True:
           print(A.pop(), end="")
except:
      pass

123py
>>> A # 由于使用A.pop()集合处理方法来取出函数,所以最后运行完之后A的集合是一个空集合
set()

集合类型应用场景

包含关系的比较

>>> "p" in {"p", "y", 123}
True
>>> {"p", "y"} >= {"p", "y", 123}
False
>>> {"p", "y"} <= {"p", "y", 123}
True

数据去重: 集合类型所有元素无重复

>>> ls = ["p", "p", "y", "y", 123]
>>> s = set(ls)    # 利用集合无重复元素的特点
>>> s
{123, 'p', 'y'}
>>> lt = list(s)   # 将集合转换为列表
>>> lt
[123, 'p', 'y']

序列类型及操作

序列类型定义

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

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

序列是一个基类类型

序列类型包含:字符串类型,元组类型,列表类型

序号的定义

在这里插入图片描述

序列处理函数及方法

6个操作符

在这里插入图片描述

示例

>>> ls = ["python", 123, ".io"] # 列表取反
>>> ls[::-1]
['.io', 123, 'python']

>>> s = "python123.io" # 字符串取反
>>> s[::-1]
'oi.321nohtyp'

5个函数和方法

在这里插入图片描述

示例

>>> ls = ["python", 123, ".io"]
>>> len(ls)
3
>>> s = "python123.io"
>>> max(s)
'y'

元组类型及操作

元组类型定义

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

元组是一种序列类型,一旦创建就不能被修改
使用小括号()或 tuple()创建,元素间用逗号,分隔
可以使用或不使用小括号

def func():
    return 1,2

示例

>>> creature = "cat", "dog", "tiger", "human"
>>> creature
('cat', 'dog', 'tiger', 'human')
>>> color = (0x001100, "blue", creature)
>>> color
(4352, 'blue', ('cat', 'dog', 'tiger', 'human'))

元组类型操作

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

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

示例

>>> creature = "cat", "dog", "tiger", "human"
>>> creature[::-1]
('human', 'tiger', 'dog', 'cat')
>>> color = (0x001100, "blue", creature)
>>> color[-1][2]
'tiger'

列表类型及操作

列表类型定义

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

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

示例

>>> ls = ["cat", "dog", "tiger", 1024] # 使用[]创建列表
>>> ls
['cat', 'dog', 'tiger', 1024]
>>> lt = ls # 赋值仅传递引用,并没有创建列表
>>> lt
['cat', 'dog', 'tiger', 1024]

列表类型操作函数和方法在这里插入图片描述

示例

>>> ls = ["cat", "dog", "tiger", 1024]
>>> ls[1:2] = [1, 2, 3, 4]
>>> ls
['cat', 1, 2, 3, 4, 'tiger', 1024]

>>> del ls[::3]
>>> ls
[1, 2, 4, 'tiger']

>>> ls*2
[1, 2, 4, 'tiger', 1, 2, 4, 'tiger']

在这里插入图片描述

示例

>>> ls = ["cat", "dog", "tiger", 1024]
>>> ls.append(1234)
>>> ls
['cat', 'dog', 'tiger', 1024, 1234]

>>> ls.insert(3, "human")
>>> ls
['cat', 'dog', 'tiger', 'human', 1024, 1234]

>>> ls.reverse()
>>> ls
[1234, 1024, 'human', 'tiger', 'dog', 'cat']

列表的12个功能

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

序列类型应用场景

序列类型应用场景:元素遍历

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

元素遍历

遍历组合数据类型(for in方式)

>>> A = {"p", "y", 123}
>>> for item in A:
	print(item, end="")

123py
>>> A
{123, 'p', 'y'}

遍历组合数据类型(while方式)

>>> try:
     while True:
           print(A.pop(), end="")
except:
      pass

123py
>>> A # 由于使用A.pop()集合处理方法来取出函数,所以最后运行完之后A的集合是一个空集合
set()

数据保护

如果不希望数据被程序所改变,转换成元组类型

>>> ls = ["cat", "dog", "tiger", 1024]
>>> lt = tuple(ls)
>>> lt
('cat', 'dog', 'tiger', 1024)

字典类型及操作

字典类型定义

字典类型定义

理解"映射"

映射是一种键(索引)和值(数据)的对应

在这里插入图片描述

在这里插入图片描述

字典类型是“映射”的体现

键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
采用大括号 {} 和dict()创建,键值对用冒号: 表示

{<1>:<1>,<2>:<2>,...,<键n>:<值n>}

字典类型的用法

在字典变量中,通过键获得值

<字典变量> = {<1>:<1>...<键n>:<值n>}
<> = <字典变量>[<>]   
<字典变量>[<>] = <> # []用来向字典变量中索引或增加元素

示例

>>> d = {"中国":"北京", "美国":"华盛顿", "法国":"巴黎"}
>>> d
{'美国': '华盛顿', '法国': '巴黎', '中国': '北京'}
>>> d["中国"]
'北京'
>>> de = {}; type(de)  # 生成空的字典并返回变量de的类型
<class 'dict'>

字典处理函数及方法

字典类型操作函数和方法

在这里插入图片描述

示例

>>> d = {"中国":"北京", "美国":"华盛顿", "法国":"巴黎"}
>>> "中国" in d
True

>>> d.keys()
dict_keys(['美国', '法国', '中国'])

>>> d.values()
dict_values(['华盛顿', '巴黎', '北京'])

在这里插入图片描述

示例

>>> d = {"中国":"北京", "美国":"华盛顿", "法国":"巴黎"}

>>> d.get("中国","伊斯兰堡")
'北京'

>>> d.get("巴基斯坦","伊斯兰堡")
'伊斯兰堡'

>>> d.popitem()
('美国', '华盛顿')

字典功能

在这里插入图片描述

字典类型应用场景

映射的表达

映射无处不在,键值对无处不在
例如:统计数据出现的次数,数据是键,次数是值
最主要作用:表达键值对数据,进而操作它们

元素遍历

for k in d :
    <语句块>

基本统计值计算

"基本统计值计算"问题分析

基本统计值

在这里插入图片描述

"基本统计值计算"实例讲解

#CalStatisticsV1.py
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 = 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("平均值:{},方差:{:.2},中位数:{}.".format(m, dev(n,m),median(n)))

"基本统计值计算"举一反三

技术能力扩展

获取多个数据:从控制台获取多个不确定数据的方法
分隔多个函数:模块化设计方法
充分利用函数:充分利用Python提供的内容函数

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值