Python
Dict 和 Set 类型
Dict
- Dict由来
footballStar=['Messi','Henry','Iniesta']//球星姓名
score=[50,34,15]//球星进球数
需要:查找球星的进球数.用两个 List查找很不方便,所以产生 Dict
dict = {
'Messi': 50,
'Henry': 34,
'Iniesta': 15
}
- 访问 Dict
可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:
print(dict['Messi'])#50
print(dict['Henry'])#34
print(dict['Iniesta'])#15
特点:
- 查找速度快
- 存储的key-value序对是没有顺序的
- 作为 key 的元素必须不可变(基本数据类型如字符串、整数、浮点数不可变,可以作为 key,而 list 可变,不能作为 key)
##2. 存储的key-value序对是没有顺序的
dict = {
'Messi': 50,
'Henry': 34,
'Iniesta': 15
}
print(dict)
#{'Iniesta': 15, 'Henry': 34, 'Messi': 50} 不是按照顺序打印的
- 更新Dict
>>> dict = {
... 'Messi': 50,
... 'Henry': 34,
... 'Iniesta': 15
...
... }
>>> dict['Paul'] = 40##key 不存在,直接添加
>>> print(dict)
{'Iniesta': 15, 'Messi': 50, 'Henry': 34, 'Paul': 40}
>>> dict['Messi']=60##key存在,直接替换值
>>> print(dict)
{'Iniesta': 15, 'Messi': 60, 'Henry': 34, 'Paul': 40}
- 遍历 Dict
##打印 key和 value
>>> for value in dict:
... print(value)//打印 key
... print(dict[value])//打印 value
...
Iniesta
15
Messi
60
Henry
34
Paul
40
Set
和 java 里面的 set 一样,其作用是保证这个集合的元素不会重复。set存储的是无序集合,所以我们没法通过索引来访问。
- 创建 Set
>>> s = set(['A', 'B', 'C'])
>>> print(s)
{'C', 'A', 'B'}
>>> s = set(['A', 'B', 'C','C'])//传入重复的元素,会去掉重复的元素,只保留一个
>>> print(s)
{'C', 'A', 'B'}
- 访问 Set
>>> s = set(['A', 'B', 'C'])
>>> print(s)
{'C', 'A', 'B'}
>>> 'A' in s
True //若元素存在 ,返回 True
- 遍历 Set
>>> for name in s:
... print(name)
...
C
A
B
- 更新 Set
##添加元素,用 add()方法
>>> s = set([1, 2, 3])
>>> print (s)
{1, 2, 3}
>>> s.add(5)
>>> print (s)
{1, 2, 3, 5}
##删除元素,用 remove()方法
>>> s.remove(1)
>>> print(s)
{2, 3, 5}
>>> s.remove(6)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 6
##删除不存在的元素,会报错,进行删除前,需要判断是否存在于 set 中