数据类型是一个值的集合以及定义在这个值集上的一组操作。变量有名字和数据类型两种属性。数据类型决定了如何将代表这些值的位存储到计算机的内存中,以及可以对这些值进行的操作。

Python的数据类型包括简单数据类型、列表、元组、字典和集合。简单数据类型就是数和字符串。

2.2.1 简单数据类型转换

Python在定义变量时,不需要指定其数据类型,而是根据每次给变量所赋的值决定其数据类型。但也可以使用一组函数对常量和变量进行类型转换,以便对它们进行相应的操作。

1. 转换为数字

可以将字符串常量或变量转换为数字,包括如下的情形。

(1)使用int()函数将字符串转换为整数,语法如下:

int(x [,base ])

参数x是待转换的字符串,参数base为可选参数,指定转换后整数的进制,默认为10进制。

(2)使用long()函数将字符串转换为长整数,语法如下:

llong(x [,base ])

参数的含义与int()函数相同。

(3)使用float()函数将字符串或数字转换为浮点数,语法如下:

float (x)

参数x是待转换的字符串或数字。

(4)使用eval ()函数计算字符串中的有效Python表达式并返回结果,语法如下:

eval(str)

参数str是待计算的Python表达式字符串。

【例2-9】 下面是一个类型转换的例子。

a = "1"; 
b = int(a)+1; 
print(b);

变量a被赋值”1″,此时它是字符串变量。然后使用int()函数将变量转换为整数并加上1再赋值给变量b。最后使用print ()函数输出变量b。运行结果为2。

【例2-10】 使用eval ()函数的例子。

a = "1+2"; 
print(eval(a));

运行结果为3。

2. 转换为字符串

可以将数字常量或变量转换为字符串,包括如下的情形。

(1)使用str ()函数将数值转换为字符串,语法如下:

str(x)

参数x是待转换的数值。

(2)使用repr ()函数将对象转换为可打印字符串,语法如下:

repr(obj)

参数obj是待转换的对象。

(3)使用chr ()函数将一个整数转换为可对应ASCII码的字符,语法如下:

chr(整数)

(4)使用ord()函数将一个字符转换为对应的ASCII码,语法如下:

ord(字符)

【例2-11】 使用chr ()函数和ord()函数的例子。

print(chr(65)); 
print(ord('A'));

运行结果为:

A 
65

(5)使用hex()函数将一个整数转换为一个十六进制字符串,语法如下:

hex(整数)

(6)使用oct()函数将一个整数转换为一个八进制字符串,语法如下:

oct(整数)

【例2-12】 使用hex()函数和oct()函数打印8的十六进制字符串和八进制字符串。

print(hex(8)); 
print(oct(8));

输出的结果如下:

0x8 
0o10

十六进制字符串以0x开头,八进制字符串以0o开头。

2.2.2 列表

列表(List)是一组有序存储的数据。例如,饭店点餐的菜单就是一种列表。列表具有如下特性:

• 和变量一样,每个列表都有唯一标识它的名称。

• 一个列表的元素应具有相同的数据类型。

• 每个列表元素都有索引和值两个属性,索引是一个从0开始的整数,用于标识元素在列表中的位置;值当然就是元素对应的值。

1. 定义列表

下面就是一个列表的定义。

languagelist = [‘C++’, ‘C#’, ‘Java’, ‘Python’]

2. 打印列表

可以直接使用print()函数打印列表,方法如下:

print(列表名)
【例2-13】 打印列表的内容。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
print(languagelist)

运行结果如下:

['C++', 'C#', 'Java', 'Python']

3. 获取列表长度

列表长度指列表中元素的数量。可以通过len()函数获取列表的长度,方法如下:

len(数组名)

4. 访问列表元素

列表由列表元素组成。对列表的管理就是对列表元素的访问和操作。可以通过下面的方法获取列表元素的值:

列表名[index]
index是元素索引,第1个元素的索引是0,最后一个元素的索引是列表长度−1。

【例2-14】 访问列表元素的例子。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
print(languagelist [0]) 
print(languagelist [3])

程序打印列表中索引为0和3的元素,运行结果如下:

C++ 
Python

5. 添加列表元素

可以通过append()函数在列表尾部添加元素,具体方法如下:

列表.append(新值)
【例2-15】 通过append()函数添加列表元素的例子。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
languagelist.append('javascript') 
print(languagelist)

程序调用append()函数在列表menulist的尾部添加元素’ javascript ‘,运行结果如下:

['C++', 'C#', 'Java', 'Python', 'javascript']

还可以通过insert()函数在列表的指定位置插入一个元素,具体方法如下:

列表. insert(插入位置, 新值)
【例2-16】 通过insert()函数添加列表元素的例子。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
languagelist.insert(1, ' javascript') 
print(languagelist)

程序调用insert()函数在列表languagelist索引为1的位置插入元素’ javascript ‘,运行结果如下:

['C++', 'javascript', 'C#', 'Java', 'Python']

还可以通过extend()函数将一个列表中的每个元素分别添加到另一个列表中,具体方法如下:

列表1.extend(列表2)
【例2-17】 通过extend()函数添加列表元素的例子。

languagelist1 = ['javascript', 'Java'] 
languagelist2 = ['C++', 'C#'] 
languagelist1.extend(languagelist2) 
print(languagelist1)

程序调用extend()函数将列表languagelist2中的每个元素分别添加到列表languagelist1,运行结果如下:

['javascript', 'Java', 'C++', 'C#']

6. 合并两个列表

可以使用+将两个列表合并,得到一个新的列表,具体方法如下:

列表3=列表1 + 列表2
【例2-18】 合并2个列表的例子。

languagelist1 = ['javascript', 'Java', 'Python'] 
languagelist2 = ['C++', 'C#', 'Python'] 
languagelist3 = languagelist1 + languagelist2 
print(languagelist3)

运行结果如下:

['javascript', 'Java', 'Python', 'C++', 'C#', 'Python']

可以看到,使用操作符“+”合并两个列表后重复的元素同时出现在新列表中。

7. 删除列表元素

使用del语句可以删除指定的列表元素,具体方法如下:

del 列表名[索引]
【例2-19】 使用del语句删除列表元素的例子。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
del languagelist[0] 
print(languagelist)

运行结果如下:

['C#', 'Java', 'Python']

可以看到,列表中的第一个元素已经被删除。

8. 定位列表元素

可以使用index()函数获取列表中某个元素的索引。其基本语法如下:

列表.index(元素值)
函数返回元素值在列表中某个元素的索引,如果不存在,则会报异常。

【例2-20】 使用index ()函数的例子。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
print(languagelist.index('Java')) 
print(languagelist.index(' Python '))

运行结果如下:

0 
2

9. 遍历列表元素

遍历列表就是一个一个地访问列表元素,这是使用列表时的常用操作。

可以使用for语句和range()函数遍历列表索引,然后通过索引依次访问每个列表元素,方法如下:

for i in range(len(list)):
访问list[i]
【例2-21】 for语句和range()函数遍历列表。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
for i in range(len(languagelist)): 
print(languagelist[i]);

程序的运行结果如下:

C++ 
C# 
Java 
Python

也可以使用for语句和enumerate()函数同时遍历列表的元素索引和元素值,方法如下:

for索引, 元素值in enumerate(list):
访问索引和元素值
【例2-22】 for语句和enumerate()函数遍历列表。

languagelist = ['C++', 'C#', 'Java', 'Python'] 
for index,value in enumerate(languagelist): 
print("第%d个元素值是【%s】" %(index, value));

程序的运行结果如下:

第0个元素值是【C++】 
第1个元素值是【C#】 
第2个元素值是【Java】 
第3个元素值是【Python】

10. 列表排序

列表排序操作值按列表元素值的升序、降序或反序重新排列列表元素的位置。

可以使用sort()函数对列表进行升序排列,其语法如下:

列表.sort()
调用sort()函数后,列表被排序。

【例2-23】 使用sort()函数对列表进行升序排列。

list = ['banana', 'apple', 'pear', 'grape']; 
list.sort() 
print(list)

程序的运行结果如下:

['apple', 'banana', 'grape', 'pear']

可以使用reverse()函数对列表进行反序排列,其语法如下:

列表.reverse()
调用reverse ()函数后,列表元素被反序排列。

【例2-24】 使用reverse ()函数对列表进行反序排列。

list = ['apple', 'Banana', 'pear', 'grape']; 
list.reverse() 
print(list)

程序的运行结果如下:

['grape', 'pear', 'Banana', 'apple']

如果希望对列表元素进行降序排列,则可以先使用sort()函数进行升序排列,然后调用reverse()函数对列表进行反序排列。

【例2-25】 对列表进行反序排列。

list = ['apple', 'banana', 'pear', 'grape']; 
list.sort() 
list.reverse() 
print(list)

程序的运行结果如下:

['pear', 'grape', 'banana', 'apple']

11. 产生一个数值递增列表

使用range()函数可以产生一个数值递增列表,它的基本语法结构如下:

range(start, end)
参数说明如下。

start:一个整数,指定产生的列表的起始元素值。为可选参数,默认值为0。

end:一个整数,指定产生的列表的结束元素值。

range()函数返回一个列表,该列表由从start开始至end结束的整数组成。

【例2-26】 使用range()函数产生一个数值递增列表的应用实例。

list1 = range(10) 
list2 = range(11, 20) 
#打印list1 
for index,value in enumerate(list1): 
print("list1 的第%d个元素值是【%s】" %(index, value)); 
#打印list2 
for index,value in enumerate(list2): 
print("list2 的第%d个元素值是【%s】" %(index, value));

程序的运行结果如下:

list1的第0个元素值是【0】 
list1的第1个元素值是【1】 
list1的第2个元素值是【2】 
list1的第3个元素值是【3】 
list1的第4个元素值是【4】 
list1的第5个元素值是【5】 
list1的第6个元素值是【6】 
list1的第7个元素值是【7】 
list1的第8个元素值是【8】 
list1的第9个元素值是【9】 
list2的第0个元素值是【11】 
list2的第1个元素值是【12】 
list2的第2个元素值是【13】 
list2的第3个元素值是【14】 
list2的第4个元素值是【15】 
list2的第5个元素值是【16】 
list2的第6个元素值是【17】 
list2的第7个元素值是【18】 
list2的第8个元素值是【19】

12. 定义多维列表

可以将多维列表视为列表的嵌套,即多维列表的元素值也是一个列表,只是维度比其父列表小一。二维列表的元素值是一维列表,三维列表的元素值是二维列表,以此类推。

【例2-27】 一个定义二维数列表的例子。

list2 = [[“CPU”, “内存”], [“硬盘”,”声卡”]];
此时列表list2的内容如图2-3所示。

图2-3 例2-27中列表list2的内容

【例2-28】 打印二维列表。

list2 = [["CPU", "Memory"], ["Harddisk"," Sound Card"]]; 
for i in range(len(list2)): 
print(list2[i]);

运行结果如下:

['CPU', 'Memory'] 
['Harddisk', ' Sound Card']

【例2-29】 也可以使用嵌套for语句打印二维列表的每一个元素,代码如下:

list2 = [["CPU", "Memory"], ["Harddisk"," Sound Card"]]; 
for i in range(len(list2)): 
list1 = list2[i]; 
for j in range(len(list1)): 
print(list1[j])

运行结果如下:

CPU 
Memory 
Harddisk 
Sound Card

二维列表比一维列表多一个索引,可以使用下面的方法获取二维列表元素的值:

列表名[索引1] [索引2]
【例2-30】 使用嵌套2个索引访问二维列表的每一个元素,代码如下:

list2 = [["CPU", "Memory"], ["Harddisk"," Sound Card"]]; 
for i in range(len(list2)): 
for j in range(len(list2[i])): 
print(list2[i][j])

运行结果与例2-29相同。

2.2.3 元组

元组(Tuple)与列表非常相似,它具有以下特性:

(1)一经定义,元组的内容不能改变。

(2)元组元素可以存储不同类型的数据,可以是字符串、数字,甚至是元组。

(3)元组元素由圆括号括起来,例如:

t = (1, 2, 3, 4)

1. 访问元组元素

与列表一样,可以使用索引访问元组元素,方法如下:

元组[索引]
【例2-31】 访问元组元素的例子。

t = (1, 2, 3, 4) 
print(t[0]) 
print(t[3])

程序打印元组中索引为0和3的元素,运行结果如下:

1 
4

2. 获取元组长度

元组长度指元组中元素的数量。可以通过len()函数获取元组的长度,方法如下:

len(元组名)
【例2-32】 打印元组的长度。

t = (1, 2, 3, 4) 
print(len(t))

运行结果为:

4

3. 遍历元组元素

与列表一样,可以使用for语句和range()函数遍历列表索引,然后通过索引依次访问每个元组元素,方法如下:

for i in range(len(tuple)):
访问tuple [i]
【例2-33】 for语句和range()函数遍历列表。

t = ('C++', 'C#', 'Java', 'Python'); 
for i in range(len(t)): 
print(t[i]);

程序的运行结果如下:

C++ 
C# 
Java 
Python

也可以使用for语句和enumerate()函数同时遍历列表的元素索引和元素值,方法如下:

for索引, 元素值in enumerate(list):
访问索引和元素值
【例2-34】 for语句和enumerate()函数遍历元组。

t = ('C++', 'C#', 'Java', 'Python'); 
for index,value in enumerate(list): 
print("第%d个元素值是【%s】" %(index, value));

程序的运行结果如下:

第0个元素值是【C++】 
第1个元素值是【C#】 
第2个元素值是【Java】 
第3个元素值是【Python】

4. 排序

因为元组的内容不能改变,所以元组没有sort()函数。可以将元组转换为列表,然后再对列表进行排序,最后将排序后的列表赋值给元组。

可以使用下面的方法将元组转换为列表。

列表对象 = list(元组对象)
将列表转换为元组的方法如下:

元组对象 = tuple(列表对象)
【例2-35】 对元组进行排列。

t = ('C++', 'C#', 'Java', 'Python'); 
l = list(t); 
l.sort(); 
t = tuple(l); 
print(t)

程序的运行结果如下:

('C#', 'C++', 'Java', 'Python')

可以使用reverse()函数对元组进行反序排列,其语法如下:

元组.reverse()
调用reverse ()函数后,元组元素被反序排列。

【例2-36】 使用reverse ()函数对元组进行反序排列。

t = ('C#', 'C++', 'Java', 'Python'); 
l = list(t); 
l.reverse() 
t = tuple(l); 
print(t)

2.2.4 字典

字典也是在内存中保存一组数据的数据结构,与列表不同的是:每个字典元素都有键(Key)和值(Value)两个属性。键用于定义和标识字典元素,键可以是一个字符串,也可以是一个整数;值就是字典元素对应的值。因此,字典元素就是一个“键/值对”。

图2-4是字典的示意图。灰色方块中是数组元素的键,白色方块中是数组元素的值。

图2-4 字典的示意图

1. 定义字典

字典元素使用{}括起来,例如,下面的语句可以定义一个空字典。

d1 = {};

也可以在定义字典时指定里面的元素,每个元素由键和值组成,键和值之间用冒号(:)分隔,元素间用逗号(,)分隔。例如:

d2={’name’:’小明’, ‘sex’:’男’,’age’:’18’, ‘score’:’80’}

2. 打印字典

可以直接使用print()函数打印字典,方法如下:

print(字典名)

【例2-37】 打印字典的内容。

d={'name':'Johney', 'sex':'Male','age':'18', 'score':'80'} 
print(d)

运行结果如下:

{'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'}

3. 获取字典长度

字典长度指字典中元素的数量。可以通过len()函数获取字典的长度,方法如下:

len(字典名)

【例2-38】 打印字典的长度。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
print(len(d))

运行结果为:

4

4. 访问字典元素

字典由字典元素组成。对字典的管理就是对字典元素的访问和操作。可以通过下面的方法获取字典元素的值:

字典名[key]

key是元素的键。

【例2-39】 访问字典元素的例子。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
print(d['name']) 
print(d['sex']) 
print(d['age']) 
print(d['score'])

程序打印字典中各键的元素值,运行结果如下:

5. 添加字典元素

可以通过赋值在字典中添加元素,具体方法如下:

字典[键] = 值

如果字典中不存在指定键,则添加;否则修改键值。

【例2-40】 添加字典元素的例子。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
d['score'] = '100' 
print(d)

运行结果如下:

{'age': '18', 'score': '100', 'name': 'Johney', 'sex': 'Male'}

6. 合并两个字典

可以使用update()函数将两个字典合并,具体方法如下:

字典1.update(字典2)

【例2-41】 合并两个字典的例子。

d1={'name': 'Johney', 'sex': 'Male'} 
d2={'age':'18', 'score': '80'} 
d1.update(d2) 
print(d1)

运行结果如下:

{'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'}

可以看到,d2的元素被合并到d1中。

7. 删除字典元素

使用pop()方法可以删除指定的字典元素,并返回删除的元素值。具体方法如下:

字典名.pop(键)

【例2-42】 使用pop()方法删除字典元素的例子。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
d.pop('score') 
print(d)

运行结果如下:

{'age': '18', 'name': 'Johney', 'sex': 'Male'}

可以看到,字典中键为’score’的元素已经被删除。

8. 判断字典是否存在元素

可以使用in关键字判断字典中是否存在指定键的元素。其基本语法如下:

键in字典

如果字典中存在指定键的元素,则表达式返回True;否则返回False。

【例2-43】 使用in关键字的例子。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
if 'name1' in d: 
print(d['name1']) 
else: 
print('不包含键位name1的元素')

运行结果如下:

不包含键位name1的元素

9. 遍历字典元素

可以使用for…in语句遍历字典的键和值,方法如下:

for key in字典.keys(): # 遍历字典的键
访问 字典[key]
for key in 字典.values(): # 遍历字典的值
访问 字典[key]

【例2-44】 使用for…in语句遍历字典的键。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
for key in d.keys(): # 遍历字典的键 
print('键'+key+ '的值:'+ d[key]);

程序的运行结果如下:

键age的值:18 
键score的值:80 
键name的值:Johney 
键sex的值:Male

【例2-45】 使用for…in语句遍历字典的值。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
for value in d.values(): # 遍历字典的值 
print(value);

程序的运行结果如下:

18 
80 
Johney 
Male

10. 清空字典

使用clear()方法可以清空指定的字典所有元素。具体方法如下:

字典名.clear()

【例2-46】 使用clear ()方法清空字典元素的例子。

d = {'age': '18', 'score': '80', 'name': 'Johney', 'sex': 'Male'} 
d. clear() 
print(d)

运行结果如下:

{}

可以看到,字典已经被清空。

11. 字典的嵌套

字典里面还可以嵌套字典,例如:

{’name’:{’first’:’Johney’,’last’:’Lee’},’age’:40}

可以通过下面的方式访问嵌套字典。

字典[键][键]

【例2-47】 使用嵌套字典的例子。

d={'name':{'first':'Johney','last':'Lee'},'age':40} 
print(d['name'][ 'first'])

运行结果如下:

Johney

2.2.5 集合

集合由一组无序排列的元素组成,可以分为可变集合(set)和不可变集合(frozenset)。可变集合创建后可以添加、修改和删除元素,而不可变集合创建后则不能改变。

1. 创建集合

可以使用set()方法创建可变集合,例如:

s = set(‘python’)

【例2-48】 创建可变集合的例子。

s = set('python') 
print(type(s)) 
print(s)

运行结果如下:

<type 'set'> 
set(['h', 'o', 'n', 'p', 't', 'y'])

可以看到生成的集合s的类型是类set,s中元素是无序的。

可以使用frozenset ()方法创建不可变集合,例如:

s = frozenset(‘python’)

【例2-49】 创建不可变集合的例子。

fs = frozenset('python') 
print(type(fs)) 
print(fs)

运行结果如下:

<class 'frozenset'> 
frozenset({'n', 'y', 'h', 'o', 'p', 't'})

可以看到生成的集合fs的类型是类frozenset,fs中元素是无序的。

2. 获取集合长度

集合长度指集合中元素的数量。可以通过len()函数获取集合的长度,方法如下:

len(集合名)

【例2-50】 打印集合的长度。

s = set('python') 
print(len(s))

运行结果为:

6

3. 访问集合元素

由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历集合元素。

【例2-51】 遍历集合元素的例子。

s = set('python') 
for e in s: 
print(e)

运行结果如下:

n 
o 
t 
y 
h 
p

4. 添加集合元素

可以通过调用add()方法在集合中添加元素,具体方法如下:

集合.add(值)
注意
只能在可变集合中添加元素,不能在不可变集合中添加元素。

【例2-52】 添加一个集合元素的例子。

s = set('python') 
s.add('0') 
print(s)

运行结果如下:

{'t', 'y', 'h', 'p', 'o', '0', 'n'}

可以看到,’0’出现在集合s中。
也可以使用update()方法将另外一个集合的元素添加到指定集合中,具体方法如下:

集合. update(值)

【例2-53】 添加多个集合元素的例子。

s = set([1, 2, 3]) 
s.update([4, 5, 6]) 
print(s)

运行结果如下:

{1, 2, 3, 4, 5, 6}

5. 删除集合元素

可以使用remove()方法删除指定的集合元素,具体方法如下:

集合名. remove(值)

使用clear()方法可以清空指定的集合所有元素,具体方法如下:

集合名.clear()

【例2-54】 删除集合元素的例子。

s = set([1, 2, 3]) 
s.remove(1) 
print(s) 
s.clear() 
print(s)

运行结果如下:

{2 ,3} 
set()

可以看到,用remove()方法删除了元素1,调用clear()方法后集合被清空。

6. 判断集合是否存在元素

可以使用in判断集合中是否存在指定键的元素。其基本语法如下:

值in集合

如果集合中存在指定值的元素,则表达式返回True;否则返回False。

【例2-55】 判断集合是否存在元素的例子。

s = set([1, 2, 3]) 
if 2 in s: 
print('exist') 
else: 
print('not exist')

运行结果如下:

exist

7. 遍历集合元素

可以使用for… in语句遍历集合的值,方法如下:

for element in集合:
访问element

【例2-56】 使用for… in语句遍历集合。

s = set([1, 2, 3]) 
for e in s: # 遍历集合 
print(e);

程序的运行结果如下:

1 
2 
3

8. 子集和超集

有两个集合A与B,如果集合A的任何一个元素都是集合B的元素,就说集合A包含于集合B,或集合B包含集合A,也可以说集合A是集合B的子集。如果集合A的任何一个元素都是集合B的元素,而集合B中至少有一个元素不属于集合A,则称集合A是集合B的真子集。空集是任何集合的子集。任何一个集合是它本身的子集,空集是任何非空集合的真子集。

如果集合A是集合B的子集,则称集合B是集合A的超集。

可以使用表2-2所示的操作符判断两个集合的关系。

表2-2 判断两个集合关系的操作符

【例2-57】 判断两个集合关系。

s1 = set([1, 2]) 
s2 = set([1, 2, 3]) 
if s1!=s2: 
if s1<s2: 
print('s1 是s2的真子集'.decode('utf-8').encode('gbk')) 
if s2>s1: 
print('s2 是s1的超集'.decode('utf-8').encode('gbk'))

运行结果如下:

s1是s2的真子集 
s2是s1的超集

9. 集合的并集

集合的并集由所有属于集合A或集合B的元素组成。

可以使用|操作符计算两个集合的并集。例如:

s = s1 | s2

【例2-58】 使用|操作符计算两个集合的并集。

s1 = set([1, 2]) 
s2 = set([3, 4]) 
s = s1 | s2 
print(s)

运行结果如下:

{1, 2, 3, 4}

也可以使用union()方法计算两个集合的并集。例如:

s = s1.union(s2)

【例2-59】 使用union()方法计算两个集合的并集。

s1 = set([1, 2]) 
s2 = set([3, 4]) 
s = s1.union(s2) 
print(s)

运行结果如下:

{1, 2, 3, 4}

10. 集合的交集

集合的交集由所有既属于集合A又属于集合B的元素组成。

可以使用&操作符计算两个集合的交集。例如:

s = s1 & s2

【例2-60】 使用&操作符计算两个集合的交集。

s1 = set([1, 2, 3]) 
s2 = set([3, 4]) 
s = s1 & s2 
print(s)

运行结果如下:

{3}

也可以使用intersection ()方法计算两个集合的交集。例如:

s = s1. intersection (s2)

【例2-61】 使用intersection()方法计算两个集合的交集。

s1 = set([1, 2, 3]) 
s2 = set([3, 4]) 
s = s1.intersection(s2) 
print(s)

11. 集合的差集

集合的差集由所有属于集合A但不属于集合B的元素组成。

可以使用−操作符计算两个集合的差集。例如:

s = s1 – s2

【例2-62】 使用−操作符计算两个集合的差集。

s1 = set([1, 2, 3]) 
s2 = set([3, 4]) 
s = s1 - s2 
print(s)

运行结果如下:

{1, 2}

也可以使用difference ()方法计算两个集合的差集。例如:

s = s1. difference(s2)

【例2-63】 使用difference()方法计算两个集合的差集。

s1 = set([1, 2, 3]) 
s2 = set([3, 4]) 
s = s1. difference(s2) 
print(s)

12. 集合的对称差分

集合的对称差分由所有属于集合A和集合B,并且不同时属于集合A和集合B的元素组成。

可以使用^操作符计算两个集合的对称差分。例如:

s = s1 ^ s2

【例2-64】 使用^操作符计算两个集合的对称差分。

s1 = set([1, 2, 3]) 
s2 = set([3, 4]) 
s = s1 ^ s2 
print(s)

运行结果如下:

{1, 2, 4}

也可以使用symmetric_difference ()方法计算两个集合的对称差分。例如:

s = s1. symmetric_difference (s2)

【例2-65】 使用symmetric_difference()方法计算两个集合的对称差分。

s1 = set([1, 2, 3])
s2 = set([3, 4])
s = s1.symmetric_difference(s2)
print(s)
免责申明:以上文章或网盘资源均由第三方注册用户发表,不代表本站观点,如遇侵权,请与我们联系!
众嗅博客 » Python数据类型

发表回复

提供最优质的资源集合

立即查看 了解详情