Python语法基础之. Task06 字典和集合(8/17)

Python基础—— Task06 字典和集合

  • 1. 字典dict {}
    • 1.1 字典的定义与特性
    • 1.2 字典的基本操作
    • 1.3 字典内置函数&方法
  • 2. 集合
    • 2.1 集合的基本操作
    • 2.2 集合的内置方法

1. 字典dict {}

1.1 字典的定义与特性

Python内置了字典dict,在其他语言中也称为map。字典是另一种可变容器模型,且可存储任意类型对象。字典使用键-值(key-value)存储,每个键值(key=>value)对用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中,具有极快的查找速度。

d = {key1 : value1, key2 : value2 }
>>> d['Jack'] = 90
>>> d['Jack']
90
>>> d['Jack'] = 88
>>> d['Jack']
88

创建字典

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }

字典的特性

  • value可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但key不行
  • key必须是唯一的,但值(value)则不必
  • 多次对一个key放入value后面的值会把前面的值冲掉,即不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
  • key必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
  • dict内部存放的顺序和key放入的顺序是没有关系的

特别的,要避免key不存在的错误,有两种办法:

  • { }是用来创建一个空字典
  • 通过in判断key是否存在
'Thomas' in d
False
  • 通过dict提供的get()方法:如果key不存在,可以返回None,或者自己指定的value
>>> d.get('Thomas')		# 返回None
>>> d.get('Thomas', -1)
-1

1.2 字典的基本操作

基本操作包括:访问、修改、删除、pop()

访问字典

  • 根据key(键)访问value(值)
dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}
 
print (dict['Name'])	# Ivan
  • 若字典里没有的键访问数据(不存子要访问的key),会输出错误

修改字典

  • 向字典添加新内容的方法是:增加新的键/值对,修改已有键/值
dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}
 
dict['Age'] = 20			# 更新 Age
dict['Code'] = "Python"		# 添加信息

删除操作

  • 删除单一键值对、清空字典、删除字典
dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}
 
del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典
  • 注:del() 方法后面也会讨论

pop(key)
用pop(key)方法,对应的value也会从dict中删除:类似于出栈。

>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}

1.3 字典内置函数&方法


字典内置函数

  • len(dict):计算字典元素个数,即键的总数
dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}
print(len(dict))	# 3
  • str(dict):输出字典,以可打印的字符串表示
dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}
print(str(dict))	# "dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}"
  • type(variable):返回输入的变量类型,如果变量是字典就返回字典类型
dict = {'Name': 'Ivan', 'Age': X, 'Class': 'First'}
print(type(dict))	# 

字典内置方法

Python字典包含了以下内置方法:

序号 函数及描述
1 radiansdict.clear()
删除字典内所有元素
2 radiansdict.copy()
返回一个字典的浅复制
3 radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5 key in dict
如果键在字典dict里返回true,否则返回false
6 radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
7 radiansdict.keys()
返回一个迭代器,可以使用 list() 来转换为列表
8 radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
10 radiansdict.values()
返回一个迭代器,可以使用 list() 来转换为列表
11 pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12 popitem()
随机返回并删除字典中的最后一对键和值。

2. 集合

集合(set)是一个无序的不重复元素序列;set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

  • 以使用{ }或者 set()函数创建集合
  • 注意:创建一个空集合必须用set()而不是 { }(因为 { } 是用来创建一个空字典)

一般的,为了与字典区分,多用set()函数创建集合

2.1 集合的基本操作

1、添加元素

  • s.add( x )
  • s.update( x )
    x 可以有多个,用逗号分开

2、移除元素

  • s.remove( x )
  • s.discard( x )
  • s.pop() : 随机删除集合中的一个元素
    3、计算集合元素个数
  • len(s)

4、清空集合

  • s.clear()

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

  • x in s:存在返回 True,不存在返回 False

2.2 集合的内置方法

方法 描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() 返回两个集合的并集
update() 给集合添加元素

你可能感兴趣的:(Python)