轻轻松松学会Python入门八:组合数据类型

目录

一,集合类型及操作

1,集合类型的定义:

1)集合是多个元素的无序组合。

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

2,集合间操作

3,集合处理方法:

4,集合类型应用场景:

1)包含关系比较:​

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

二,序列类型及操作

1,序列类型定义:

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

2)序列是一个基类类型

2,序列处理函数及方法

3,元组类型及操作:

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

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

4,列表类型及操作:

1)列表是序列类型的一种扩展(十分常用) 

2)列表类型操作函数和方法

 3)序列类型应用场景

三,实例9,基本统计值计算

四,字典类型及操作

 1,字典类型定义:

2,字典类型的用法:

3,字典类型操作函数和方法:

 五,jieba库的使用

 六,实例10:文本词频统计:

一,集合类型及操作

1,集合类型的定义:

1)集合是多个元素的无序组合。

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



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

集合用大括号{}表示,元素间用逗号分隔
建立集合类型用{}或set()
建立空集合类型,必须使用set()

2,集合间操作

 

3,集合处理方法:

 

4,集合类型应用场景:

1)包含关系比较:

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

二,序列类型及操作

1,序列类型定义:

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

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

2)序列是一个基类类型

2,序列处理函数及方法

 

 

3,元组类型及操作:

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

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

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

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

4,列表类型及操作:

1)列表是序列类型的一种扩展(十分常用) 

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

 只是把地址给了它,并没有重新复制一份。

2)列表类型操作函数和方法

 

 

 

 3)序列类型应用场景

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

数据保护:

三,实例9,基本统计值计算

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

四,字典类型及操作

 1,字典类型定义:

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

streetAddr" :“中关村南大街5号”

" city":"北京市"

" zipcode ":“100081 "

2,字典类型的用法:

>>> d = {"中国":“北京”,"美国":"华盛顿",, "法国":"巴黎" }
>>> d{'中国': '北京,'美国': '华盛顿’,'法国': '巴黎'}
>>> d["中国"]    '北京'
>>> de = {} ; type(de)
type(x)
<class 'dict'>
#返回变量x的类型

序列类型由0..N整数作为数据的默认索引映射类型则由用户为数据定义索引
-键值对:键是数据索引的扩展
-字典是键值对的集合,键值对之间无序
-采用大括号{}和dict()创建,
键值对用冒号:表示
{<键1>:<值1>, <键2>:<值2>,....<键n>:<值n>}
 

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

3,字典类型操作函数和方法:

>>> d = {"中国":"北京", "美国":"华盛顿",“法国" :"巴黎"}
>>>"中国”in d
True
>>> d.keys()
dict_ _keys(['中国',' 美国' ,'法国'])
>>> d.values()
dict_ _values(['北京',‘华盛顿', '巴黎 '])

 

>>> d = {"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>> d.get("中国", "伊斯兰堡" )
'北京'
>>> d.get("巴基斯坦","伊斯兰堡")
' 伊斯兰堡
>>> d. popitem( )
('美国','华盛顿')

 五,jieba库的使用

1,jieba库的使用:

jieba是优秀的中文分词第三方库

- 中文文本需要通过分词获得单个的词语
- jieba是优秀的中文分词第三方库,需要额外安装
- jieba库提供三种分词模式,最简单只需掌握一个函数

2,jieba分词依靠中文词库
- 利用一个中文词库,确定中文字符之间的关联概率
- 中文字符间概率大的组成词组,形成分词结果
- 除了分词,用户还可以添加自定义的词组

3,jieba分词的三种模式:

精确模式、全模式、搜索引擎模式
. 精确模式:把文本精确的切分开,不存在冗余单词
. 全模式:把文本中所有可能的词语都扫描出来,有冗余
. 搜索引擎模式:在精确模式基础上,对长词再次切分

 

 六,实例10:文本词频统计:

def getText():
    txt = open("hamlet.txt","r").read()
    txt = txt.lower()
    for ch in '|"#$%^&*(),./':#反正就是一堆字符,我觉得也可以用Ascll码来做也是可以的
        txt = txt.replace(ch,' ')
    return txt

hamletTxt = getText()
words = hamletTxt.split()
counts = {}
for word in words:
    counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda  x:x[1],reverse=True)#感兴趣可以去了解
for i in range(10):
    word,count =items[i]
    print("{0:<10}{1:>5}".format(word,count))

猜你喜欢

转载自blog.csdn.net/m0_63309778/article/details/124454649