代码改变世界

5. Python数据类型之元组、集合、字典

2019-02-13 09:17  软件测试汪  阅读(365)  评论(0编辑  收藏  举报

元组(tuple)

元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开即可。与列表不同的是,元组的元素不能修改。如下代码所示:

tup1 = ()
tup2 = (1)
tup3 = (1,)
tup4 = ('test', 1, False)
tup5 = (1, 2, 3, 4, 5)
tup6 = "a", "b", "c", "d"

print(type(tup1))
print(type(tup2))
print(type(tup3))
print(type(tup4))
print(type(tup5))
print(type(tup6))

上面代码将输出如下内容:

<class 'tuple'>
<class 'int'>
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>

通过输出内容我们发现只有tup2类型是整型,其余都是元组。这是为什么呢?如果小括号里只有一个元素时,请在后面加上“,”,才能表示元组。tup6虽然没有用(),但是也是元组一种特殊的写法。

操作元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。我们可以对元组进行相关操作。如下代码所示:

a = (1, 'test', '你好', 1 + 2, False, [2, 3, 'CHINA'])
print("通过索引方式访问元组第1个元素:", a[0])
print("通过索引方式访问元组第2个元素:", a[1])
print("通过索引方式访问元组第3个元素:", a[2])
print("通过索引方式访问元组第4个元素:", a[3])
print("通过索引方式访问元组第5个元素:", a[4])
print("通过索引方式访问元组第6个元素:", a[5])
print("用负数访问方式,元组第6个元素为:", a[-1])
print("用负数访问方式,元组第5个元素为:", a[-2])

print("元组第2个元素到第6个元素,步长为2:", a[1:5:2])
print("倒数第2个数到最后:", a[-2:])
print("元组第6个元素是一个列表,访问嵌套列表第1个元素:", a[5][0])


上面代码将输出如下内容:

通过索引方式访问元组第1个元素: 1
通过索引方式访问元组第2个元素: test
通过索引方式访问元组第3个元素: 你好
通过索引方式访问元组第4个元素: 3
通过索引方式访问元组第5个元素: False
通过索引方式访问元组第6个元素: [2, 3, 'CHINA']
用负数访问方式,元组第6个元素为: [2, 3, 'CHINA']
用负数访问方式,元组第5个元素为: False
元组第2个元素到第6个元素,步长为2: ('test', 3)
倒数第2个数到最后: (False, [2, 3, 'CHINA'])
元组第6个元素是一个列表,访问嵌套列表第1个元素: 2

集合(set)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式

set1 = {value1,value2,...}
或者
set(value)

我们可以对元组进行相关操作。如下代码所示:

name = {'testDog', 'Jim', 'Mary', 'Jim', 'Jack', 'Rose'}

print(name)  # 输出集合,重复的元素被自动去掉

# 成员测试
if 'testDog' in name:
    print('testDog 在集合中')
else:
    print('testDog 不在集合中')

# set可以进行集合运算
a = set('testDogDog')
b = set('test')
c = {}

print(a)
print(b)
print(type(c))
print(a - b)  # a 和 b 的差集
print(a | b)  # a 和 b 的并集
print(a & b)  # a 和 b 的交集
print(a ^ b)  # a 和 b 中不同时存在的元素

上面代码将输出如下内容:

{'Mary', 'Rose', 'testDog', 'Jack', 'Jim'}
testDog 在集合中
{'t', 'e', 'g', 's', 'o', 'D'}
{'t', 's', 'e'}
<class 'dict'>
{'D', 'o', 'g'}
{'t', 'e', 'g', 's', 'o', 'D'}

注意:因为集合是无序的,所以你输出的结果顺序可能与笔者不一致,并不是错误,如果定义一个空{},类型将为字典

字典(dict)

列表是有序的对象集合,字典是无序的对象集合。字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。如下代码所示:

a = {"code": "10000", "result": 1, "status": 1, "text": "操作成功"}
print("取code的值", a["code"])

print("输出所有键", a.keys())
print("输出所有值", a.values())

上面代码将输出如下内容:

取code的值 10000
输出所有键 dict_keys(['code', 'result', 'status', 'text'])
输出所有值 dict_values(['10000', 1, 1, '操作成功'])

小结:数据类型主要有数字、字符串、列表、元组、集合、字典。笔者将通过思维导图找出这些数据类型共通点和不同点,方便记忆。如下图所示:

欢迎关注微信公众号:软件测试汪。软件测试交流群:809111560