(接DAY8)

五、高级(序列)数据类型

字典(dict)

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值对key=>value用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。

py-dict-3.png
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
一个简单的字典示例:

tinydict = {'name': 'qqAys', 'likes': 999, 'url': 'www.qqAys.xyz'}

访问字典里的值

把相应的键放入到方括号中,如下示例:
示例:

tinydict = {'Name': 'qqAys', 'Age': 2, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

tinydict['Name']:  qqAys
tinydict['Age']:  2

集合(set)

集合是一个无序的不重复元素序列。
可以使用大括号{ }或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{ },因为{ }是用来创建一个空字典。
创建格式:

parame = {value01,value02,...}

或者

set(value)

集合的基本操作

集合运算

set08 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
set09 = {0, 2, 4, 6, 8, 10}
  • 并集(|)

    res1 = set08 | set09
    print('新集合元素:', res1)
  • 交集(&)

    res2 = set08 & set09
    print('交集结果是:', res2)
  • 差集(-)

    res3 = set08 - set09
    print('差集结果是:', res3)

添加元素

语法格式如下:

s.add( x )

将元素x添加到集合s中,如果元素已存在,则不进行任何操作。

示例:

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'qqAys'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x可以有多个,用逗号分开。

示例:

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'qqAys'}
>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'qqAys'}
>>>

移除元素

语法格式如下:

s.remove( x )

将元素x从集合s中移除,如果元素不存在,则会发生错误。

示例:

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'qqAys'}
>>> thisset.remove("Facebook")   # 不存在会发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )

示例:

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> thisset.discard("Facebook")  # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'qqAys'}

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop() 

示例:

thisset = set(("Google", "qqAys", "Taobao", "Facebook"))
x = thisset.pop()

print(x)

输出结果:

$ python3 test.py 
qqAys

多次执行测试结果都不一样。

set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

计算集合元素个数

语法格式如下:

len(s)

计算集合s元素个数。

示例

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> len(thisset)
3

清空集合

语法格式如下:

s.clear()

清空集合s

示例:

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> thisset.clear()
>>> print(thisset)
set()

判断元素是否在集合中存在

语法格式如下:

x in s

判断元素x是否在集合s中,存在返回True,不存在返回False。

示例:

>>> thisset = set(("Google", "qqAys", "Taobao"))
>>> "qqAys" in thisset
True
>>> "Facebook" in thisset
False
>>>

未完……

标签: 达内, 软件测试, Python

分类: 个人日志, 软件测试学习, Python, 学点技术

添加新评论