关注RPA请访问网站:
www.i-search.com.cn
学Python,用RPA,欢迎下载使用
https://www.i-search.com.cn/?from=csdn
2 组合数据类型
2.1 集合类型
集合的定义及操作
建立集合类型用 {} 或 set();
建立空集合类型,必须用 set();
集合元素之间无序;
集合中每个元素唯一,不存在相同元素
A = {“python”,‘666’,(“wenwei-blog”,666)}
{‘python’, ‘666’, (‘wenwei-blog’, 666)}
B = set(“pypy”)
{‘y’, ‘p’}
C = {“python”,123,“python”,123}
{‘python’, 123}
集合操作符
6 个操作符
4 个增强操作符
集合操作方法
集合应用场景
包含关系比较;数据去重。
序列是具有先后关系的一组元素
序列是一个基类类型(基本数据类型)
序列类型分为字符串、列表、元组类型
2.2 序列类型之列表
列表由一系列按特定顺序排列的元素组成,用方括号 [] 来表示列表。
列表的增删改查相关操作
函数或方法
描述
实例
L[i]=x
替换列表 L 第 i 数据项为 x
L = [‘Python’,‘PHP’,‘JavaScript’,‘C++’]
L[1] = ‘Java’
L
[‘Python’, ‘Java’, ‘JavaScript’, ‘C++’]
L[i:j]=L1
用列表 L1 替换列表 L 中第 i 到 j 项数据
L
[‘Python’, ‘Java’, ‘JavaScript’, ‘C++’]
L1 = [‘C’,‘Go’]
L[0:2]=L1
L
[‘C’, ‘Go’, ‘JavaScript’, ‘C++’]
del L[i:j:k]
删除列表 L 第 i 到第 j 项以 k 为步数的数据
L
[‘C’, ‘Go’, ‘JavaScript’, ‘C++’, ‘Java’, ‘C#’, ‘Ruby’, ‘Lua’]
del L[1:6:2]
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’]
L+=L1 或 L.extend(L1)
将列表 L1 元素增加到列表 L 中
L;L1
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’]
[‘C’, ‘Go’]
L+=L1
L;L1
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’]
[‘C’, ‘Go’]
L*=n
将 L 列表的元素重复 n 次
L1*=2
L1
[‘C’, ‘Go’, ‘C’, ‘Go’]
L.append(x)
在 L 列表最好添加元素 x
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’]
L.append(‘Python’)
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.clear()
删除列表 L 的所有元素
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.clear()
L
[]
L1 = L.copy()
复制 L 列表生成新的 L1 列表
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L1 = L.copy()
L1
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.insert(i,x)
在列表 L 的第 i 位置增加元素 x
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.insert(2,‘PHP’);L
[‘C’, ‘JavaScript’, ‘PHP’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.pop(i)
将列表 L 中的第 i 项元素删除
L;L.pop(2);
[‘C’, ‘JavaScript’, ‘PHP’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
‘PHP’
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.remove(x)
将列表的第一个 x 元素删除
L
[‘C’, ‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.remove(‘C’)
L
[‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
L.reverse(x)
将列表 L 中的元素反转
L;L.reverse();L
[‘JavaScript’, ‘Java’, ‘Ruby’, ‘Lua’, ‘C’, ‘Go’, ‘Python’]
[‘Python’, ‘Go’, ‘C’, ‘Lua’, ‘Ruby’, ‘Java’, ‘JavaScript’]
L.sort()
将列表 L 的元素按首字母顺序排序
L.sort()
L
[‘C’, ‘Go’, ‘Java’, ‘JavaScript’, ‘Lua’, ‘Python’, ‘Ruby’]
L.index(x)
获取列表 L 的 x 元素的索引号
L.index(‘Python’)
5
L
[‘C’, ‘Go’, ‘Java’, ‘JavaScript’, ‘Lua’, ‘Python’, ‘Ruby’]
对列表数字执行简单统计计算
digits = [1,23,434,55,44,67]
min(digits)
1
max(digits)
434
sum(digits)
624
列表相关练习
练习 1:创建一个列表,其中包含数字 1-100 并打印出来然后计算列表数字的总值。
digits = [value for value in range(1,101)];sum(digits)
5050
练习 2:求 1-20 的奇数
for i in range(1,21,2):
print(i)
1
3
5
7
9
11
13
15
17
19
练习 3: 输出 3-30 以内能被 3 整除的数字
lists = [n for n in range(3,31)]
lists
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
for i in lists:
if i % 3 == 0:
print(i)
3
6
9
12
15
18
21
24
27
30
2.3 序列类型之元组
元组其实跟列表差不多,也是存一组数据,只不过它一旦创建便不能修改,所以又叫只读列表
它只有两个方法,一个是 count(统计元组某个元素出现的次数 tuple.count(‘str’)),一个是 index(查看某个元素的索引号 tuple.index(‘str’))
names = (‘zhiwenwei’,‘zhouyouxian’)
names.index(‘zhiwenwei’)
0
names.count(‘zhiwenwei’)
1
元组练习题
有如下变量,请实现要求的功能
tu = (“alex”, [11, 22, {“k1”: ‘v1’, “k2”: [“age”, “name”], “k3”: (11,22,33)}, 44])
a. 请问 tu 变量中的第一个元素 “alex” 是否可被修改?
元组不可直接被修改,需要转换成列表或字典
b. 请问 tu 变量中的 “k2” 对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k2 是字典的键,对应的值是列表可修改:tu[1][2][‘k2’]=‘Seven’
c. 请问 tu 变量中的 “k3” 对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k3 是字典的键,对应的值是元组不可修改
2.4 字典类型
字典是包含 0 个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。
Python 语言中通过字典实现映射,通过大括号 {} 建立,建立模型如下:
{键 1:值 1,键 2:值 2,…}
city = {‘中国’:‘北京’,‘美国’:‘纽约’,‘法国’:‘巴黎’}
city
{‘中国’: ‘北京’, ‘美国’: ‘纽约’, ‘法国’: ‘巴黎’}
拓展:字典是无序的。python 语言中,字符串、列表、元组都是采用数字索引,字典采用字符索引。
字典的函数和方法
字典的基本原则
字典是一个键值对的集合,该集合以键为索引,一个键对应一个值信息
字典中的元素以键信息为索引访问
字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。
2.5 jieba 库基本介绍
jieba 库提供三种分词模式,最简单只需要掌握一个函数;
jieba 是优秀的中文分词第三方库,需额外安装
jieba 库的安装方法
pip install jieba
jieba 分词的三种模式
精确模式:把文本精确切分,不存冗余单词
word1 = jieba.lcut(“python 无所不能!除了生不出孩子, 我们应该学习使用它!”)
Building prefix dict from the default dictionary …
Dumping model to file cache /tmp/jieba.cache
Loading model cost 1.832 seconds.
Prefix dict has been built succesfully.
print(word1,type(word1))
[‘python’, ‘无所不能’, ‘!’, ‘除了’, ‘生不出’, ‘孩子’, ‘,’, ‘我们’, ‘应该’, ‘学习’, ‘使用’, ‘它’, ‘!’]