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

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

一,集合类型及操作


13d24a20b373462dbc2d8fbb572328bb.png


1,集合类型的定义:


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


集合类型与数学中的集合概念一致

集合元素之间无序,每个元素唯一,不存在相同元素

集合元素不可更改,不能是可变数据类型


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


集合用大括号{}表示,元素间用逗号分隔

建立集合类型用{}或set()

建立空集合类型,必须使用set()


32c7239d2b3d4a68bec56bfe688376f8.png


2,集合间操作


7f98cd1c4bd84e678ea0aae5c5013ccf.png


ca8722e4ac4d4a8da66955079826c11f.png


1fcfa4a8361849f39a86d56cf5d3871e.png

f36f5629916b454b936629ff05845188.png


3,集合处理方法:


6fee5153fd654b498320d0acd8bec1d7.png

23696fd00c76445da4b905bc8eabf53a.png

4edcc6dc3abc4c7ba0451f68eb0387da.png


4,集合类型应用场景:


1)包含关系比较:


3dc5a448ae9c44eaa2c0c8dca8f2ed36.png


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


1ed67af94ebb402a9c5cd494a3536b98.png


二,序列类型及操作


cabf9000ffdd42589600524ba852e8e8.png


1,序列类型定义:


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


序列是一维元素向量,元素类型可以不同

类似数学元素序列: Se, s1, ...,sn-1

元素间由序号引导,通过下标访问序列的特定元素


2)序列是一个基类类型


34124bb026f74e5ba90ea287e44ad19f.png

9b4ab6cfdd3b451aa0c2f35ef2f6c76e.png


2,序列处理函数及方法


b55e1384e82b44c88e24bf34082050f6.png

e435f9d52d484fdca94e28e641b2da83.png


9cef25589e54445ebf09228ab5dfb55b.png

bcdf4c96d5644ea2929a11a078c0ea56.png


3,元组类型及操作:


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


元组是一种序列类型,一旦创建就不能被修改

使用小括号()或tuple()创建,元素间用逗号,分隔.

可以使用或不使用小括号


5f8c7a07188b4a9cbf3bdf276e858b74.png


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


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

元组因为创建后不能修改,因此没有特殊操作

使用或不使用小括号


76b7750d31e040d4bea86413cb707bd2.png


4,列表类型及操作:


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


列表是一种序列类型,创建后可以随意被修改

使用方括号[]或list() 创建,元素间用逗号,分隔

列表中各元素类型可以不同,无长度限制


9cd5d1afa17c44e5b08f6c6a61f2c5f5.png


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


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


e63933b502184c4f97cf40a73aea07f3.png

34449acdfa304ac3b45301563e0a8d7b.png

ae9bc8ead5c84a32ae9b7a706c4fba13.png


2fcb570d1e73453eb7726bdafe2eb7e5.png


3)序列类型应用场景


元组用于元素不改变的应用场景,更多用于固定搭配场景

列表更加灵活,它是最常用的序列类型

最主要作用:表示一组有序数据,进而操作它们


数据保护:


da27463e7fa8495b8a8a091fbf9088d2.png


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


4e03d6366e9b455fb9695178583a99ff.png


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)))


四,字典类型及操作


d870c423a9d04a3d8390c4323b2f365e.png


1,字典类型定义:


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


streetAddr" :“中关村南大街5号”
" city":"北京市"
" zipcode ":“100081 "

87ddbe306d2841a3855d4099c819cd39.png


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,字典类型操作函数和方法:


36c5e165881a434f87003f5b0c5093db.png


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

46289c48e5cc4085a021230d23f28203.png


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


五,jieba库的使用


1,jieba库的使用:


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


- 中文文本需要通过分词获得单个的词语

- jieba是优秀的中文分词第三方库,需要额外安装

- jieba库提供三种分词模式,最简单只需掌握一个函数


2,jieba分词依靠中文词库

- 利用一个中文词库,确定中文字符之间的关联概率

- 中文字符间概率大的组成词组,形成分词结果

- 除了分词,用户还可以添加自定义的词组


3,jieba分词的三种模式:


精确模式、全模式、搜索引擎模式

. 精确模式:把文本精确的切分开,不存在冗余单词

. 全模式:把文本中所有可能的词语都扫描出来,有冗余

. 搜索引擎模式:在精确模式基础上,对长词再次切分


ab20790c011c4ad290a0428e0e716b16.png

85f4ff42562947f7b3e1a417cb815ebc.png


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


86d6e2144c604a5b99fb29e4556d673b.png


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))


目录
相关文章
|
1月前
|
API 数据安全/隐私保护 开发者
Python自定义异常:从入门到实践的轻松指南
在Python开发中,自定义异常能提升错误处理的精准度与代码可维护性。本文通过银行系统、电商库存等实例,详解如何创建和使用自定义异常,涵盖异常基础、进阶技巧、最佳实践与真实场景应用,助你写出更专业、易调试的代码。
76 0
|
1月前
|
IDE 开发工具 数据安全/隐私保护
Python循环嵌套:从入门到实战的完整指南
循环嵌套是Python中处理多维数据和复杂逻辑的重要工具。本文通过实例讲解嵌套循环的基本用法、常见组合、性能优化技巧及实战应用,帮助开发者掌握其核心思想,避免常见错误,并探索替代方案与进阶方向。
84 0
|
3月前
|
Python
Python字符串格式化利器:f-strings入门指南
Python字符串格式化利器:f-strings入门指南
186 80
|
1月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
299 0
|
2月前
|
人工智能 Python
python基本数据类型简介
本文简要介绍了Python的基本数据类型,包括整型、浮点型、字符串、列表、字典和布尔类型,帮助读者对Python数据类型有初步了解。
|
2月前
|
数据采集 分布式计算 大数据
不会Python,还敢说搞大数据?一文带你入门大数据编程的“硬核”真相
不会Python,还敢说搞大数据?一文带你入门大数据编程的“硬核”真相
84 1
|
2月前
|
存储 安全 开发者
Python中的数据类型详解
Python是一种动态类型编程语言,具备丰富的数据类型,包括数值类型、序列类型、映射类型和集合类型等。这些类型为高效编程提供了强大支持。
|
人工智能 Java Python
python入门(二)安装第三方包
python入门(二)安装第三方包
162 1
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
556 3
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】

热门文章

最新文章

推荐镜像

更多