只言片语

:D 获取中...


第六章、组合数据类型

1.综合数据类型概述

组合数据类型能够将多个同类型或者不同类型的数据组织起来,通过单一的表示是数据操作更有序,更容易。Python中组合数据类型分为序列类型,集合类型,映射类型。

序列类型:元素的响亮,元素之间存在先后顺序,通过序号访问。

  • 字符串(str)
  • 元组(tuple)
  • 列表(list)

集合类型:元素的集合,元素之间无序,相同元素在集合中唯一存在。

  • 集合(set)

映射类型:“键值”数据项的组合,每一个元素是一个(key,value)键值对。

  • 字典(map)

(1)序列类型

  • 常用的数据类型有字符串,元组和列表。

    • 字符串:单个字符的有序组合

    • 元组:元组生成后是固定的,其中任何数据项不能替换或者删除

    • 列表:是可以改变的序列类型

  • 所有序列类型都是可以通过变量名+序号的形式访问,序号可以采用正向序号反向序号的方式。序列类型允许有重复元素存在,并通过序号来区分它们。

  • 序列类型有12个通用操作符和函数。

L6tMY4.png

(2)元组类型

  • 元组一旦被创建就不能修改,需要用逗号将元素分开(必须要有的),可以用圆括号把所有元素括起来(可以没有)。
1
2
3
4
5
6
7
8
9
10
11
# 一个元素可以作为另外一个元组的元素,并采用多级索引访问。
>>> creature="cat","dog","tiger","human"
>>> creature
('cat','dog','tiger','human')
>>> color = ("red","0x001100","blue",creature)
>>> color = ("red","0x001100","blue",('cat','dog','tiger','human'))
>>> color[2]
'blue'
# 多级索引访问
>>> color[-1][2]
'tiger'

(3)集合类型

  • 集合中的元素不可重复,元素类型只能是固定的数据类型;

  • 由于集合是无序组合,没有索引和位置的概念,不能分片,可以动态地增加和删除;

  • 集合用大括号表示,可以用赋值语句生成一个集合;

1
2
3
4
5
6
7
>>> s={425,"BIT",(10,"CS"),424}
>>> s
{424,425,(10,"CS"),"BIT"}
# 集合是无序的,元素不会被按原有输入排序,但元素不变。
>>> t={425,"BIT",(10,"CS"),424,425"BIT"}
>>> t
{424,425,(10,"CS"),"BIT"}
  • set(x)函数可以生成集合,输入的参数可以是任何组合的数据类型,返回的结果是一个无重复且排序任意的集合。
1
2
3
>>> w=set("apple")
>>> w
('l','a','e','p')
  • 集合类型的操作符有10个

L6t861.png
L6N34g.png

  • 集合类型的操作函数或方法10个

L6N0ET.png

(4)映射类型

  • 映射类型是“键-值”数据项的组合,一个元素是一个键值对,元素之间是无序的。键表示一个属性,值表示属性的内容,描述对应的属性值。
  • 如:(学校名称,城市)为映射类型,则有如下映射实例
1
2
3
(北京大学,北京)
(清华大学,北京)
(浙江大学,杭州)

2.列表的类型和操作

  • 列表是包含0个或多个对象的有序序列但列表的长度和内容是可变的,可以自由的进行数据项的增加,删除或替换,列表没有长度限制,元素类型可以不同。
  • 列表也支持成员关系运算符in,长度计算函数len(),分片[]等序列类型的运算、方法和函数。
  • 列表用中括号[]表示,也可以通过list()函数将元组或字符串转化成列表。
    L6R5IH.png
  • 列表类型特有的函数或方法:
    L6RjeS.png
  • 列表的操作实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> vlist=list(range(5))
>>> vlist
[0, 1, 2, 3, 4]
>>> len(vlist[2:])
3
>>> 2 in vlist
True
>>> vlist[3]="python"
>>> vlist
[0, 1, 2, 'python', 4]
>>> vlist[1:3]=["bit","computer"]
>>> vlist
[0, 'bit', 'computer', 'python', 4]
  • 当使用一个列表改变另外一个列表值时,python不要求两个列表长度一样,但遵循“多增少补”的原则
1
2
3
4
5
6
>>> vlist[1:3]=["new_bit","new_computer",123]
>>> vlist
[0, 'new_bit', 'new_computer', 123, 'python', 4]
>>> vlist[1:3]=["fewer"]
>>> vlist
[0, 'fewer', 123, 'python', 4]
  • 与元组一样,列表可以通过for - in语句对元组进行遍历。

3.基本统计值计算

LOHqzV.png

补充:sorted函数

sorted是一个排序函数,里面通常有三个参数

1
sorted(iterable, key=None, reverse=False)

参数说名:

iterable – 可迭代对象

key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指可迭代对象中的一个元素来进行排序。

reverse – 排序规则,= True降序,=False 升序(默认参数)

使用sorted()函数对序列进行排序,并不会在原序列的基础进行修改,而是会重新生成一个排好序的列表实现。

1
2
3
4
5
6
>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5,7,6,3,4,1,2]
>>> b
[1,2,3,4,5,6,7]

4.字典类型和操作

概念

  • 在有些比较灵活的信息查询,如查找学生的“C语言成绩”时,我们需要输入学号,而不是输入该成绩在列表中的索引号(下标),这种的查询需要“键值对”,通过特定的键(如学号)访问值(如C语言成绩)

  • 通过任意键值查找一组数据中信息的过程称为映射,在Python中通过字典实现映射,通过大括号建立映射{}。建立模式如下:

    {<键1>:<值1>,<键2>:<值2>,…}

  • 由于字典顺序也是一种集合类型,所以键值对之间没有顺序并且不能重复。

  • 字典的创建:利用大括号创建字典,并指定初始值,通过中括号可以增加新的元素

  • 直接使用大括号可以创建一个空字典,通过中括号增加新的元素

    1
    2
    3
    dcountry={'中国':"北京", "美国":"华盛顿"}
    dcountry['英国']='伦敦'

字典的函数和方法如下表:

LOv2kD.png

LOvOhQ.png

5.Python jieba库

LXSRtU.png

jieba常用分词函数:

LXpiAf.png

举例:

LXpT2Q.png

jieba库添加词汇:

LXPs8U.png

6.文本词频统计

LXiAZn.png

英文词频统计:

LXF41O.png

LXkqr4.png

LXERNn.png