学习python记录:基础---9.0字典

python的字典dict数据类型是以键值对的方式设计的,并用花括号“{}”括起来,即{key : value},多个键值对用逗号隔开。字典是python数据类型中非常重要的一种,是机器学习的决策树算法当中的基本数据结构。

其中,字典的key是不可修改的(但可以删除),可以用整数、字符串、byters和元组表示,其中最常用的是字符串。列表、字典、集合等则不可以作为字典的key,并且key必须是唯一的,相同的话将覆盖掉原先的value值。

与列表、元组等一样,我们也将讲解一下字典Dict的创建和增删改等基本用法。

python字典dict的创建声明

python字典的创建声明与前面介绍的其他数据类型,如列表list,元组tuple等基本一致,只是所运用的符号有所不同。

a_dict = dict(name='DYX', age=24)  # 键=值对
print(a_dict)  # {'age': 24, 'name': 'DYX'}

字典元素的访问

与列表类似,可以使用下标的方式来访问字典中的元素,但不同的是字典的下标是字典的“键”,而列表和元组访问时下标必须为整数值。使用下标的方式访问字典“值”时,若指定的键不存在则抛出异常。

dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
print(dict1['name']) # 张三
print(dict1['id']) # 报错

字典元素的修改

字典序列[key] = 值

通过键进行重新赋值,便可修改字典的元素,注意字典的键是不能修改的,只能添加或删除。

>>> a = dict(x=1,y=2,z=3) >>> a {'x': 1, 'y': 2, 'z': 3} >>> a['x'] = 'x1y1z1.com' #通过重新赋值,便可对字典元素进行修改 >>> a {'x': 'x1y1z1.com', 'y': 2, 'z': 3}

update()方法添加键值对

字典对象的update()方法,可以将另一个字典全部添加到当前字典中,如果两个字典中存在相同的“键”,则以另一个字典中的“值”为准,对当前字典进行更新。

a_dict = { 'ranking': [98, 97] ,  'age': 24 ,  'name': 'DYX' ,  'sex': 'male' }
#字典中的“值”可以是列表、数字、字符串元组等等,是很宽泛的
#字典中的“键”要注意不能使用列表、集合、字典作为字典的“键”
print(a_dict.items())
#dict_items([('sex', 'male'), ('age', 24), ('name', 'DYX'), ('ranking', [98, 97])])
a_dict.update( {'a':'a','b':'b'} )  
print(a_dict)  #查看添加后的字典
#{'sex': 'male', 'age': 24, 'ranking': [98, 97], 'name': 'DYX', 'a': 'a', 'b': 'b'}

字典元素的删除方法、字典清空方法和删除字典方法

 >>> a = dict(x=1,y=2,z=3)
>>> a
{'x': 1, 'y': 2, 'z': 3}
>>> del a['x'] #删除字典a中键为'x'的键和对应的值
>>> a
{'y': 2, 'z': 3}
>>> b = a.pop('y') #通过pop()函数弹出(删除)对应的键值,返回键对应的值
>>> b
2
>>> a
{'z': 3}
>>> a.clear() #清空字典
>>> a
{}
>>> del a #删除字典
>>> a #字典a已经不存在,a成为未声明not defined的变量
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined 

字典dict的常用函数,及迭代循环

for循环遍历字典

### 遍历字典的key

```python
dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
for key in dict1.keys():
    print(key)
# name
# age
# gender
```

### 遍历字典的value

```python
dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
for value in dict1.values():
    print(value)
# 张三
# 20
# 男
```

### 遍历字典的元素

```python
dict1 = {'name': '张三', 'age': 20, 'gender': '男'}
for value in dict1.items():
    print(value)
    
# ('name', '张三')
# ('age', 20)
# ('gender', '男')
```

# 集合

集合

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

s1 = {10, 20, 30, 40, 50}
print(s1)

s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)

s3 = set('abcdefg')
print(s3)

s4 = set()
print(type(s4)) # set

s5 = {}
print(type(s5)) # dict
  • 集合可以去掉重复数据;

  • 集合数据是⽆序的,故不⽀持下标

集合常见操作方法

增加数据

add()

需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。

s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)

因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进⾏任何操作

update()  重点要记常用

追加的数据是序列。

s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)

删除数据

remove()

删除集合中的指定数据,如果数据不存在则报错。

s1 = {10, 20}
s1.remove(10)
print(s1)
​
s1.remove(10) # 报错
print(s1)

discard()

删除集合中的指定数据,如果数据不存在也不会报错。

s1 = {10, 20}
s1.discard(10)
print(s1)
​
s1.discard(10)
print(s1)

pop()

随机删除集合中的一个数据,并返回这个数据。

s1 = set('12345')
del_num = s1.pop()
print(del_num)
print(s1)

查找数据

in:判断数据在集合序列 not in:判断数据不在集合序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值