Python基础-Dict 和 Set 类型

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 中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值