python课程及编码字典_Python基础之字典操作(示例代码)

快来打我* 2022-10-26 01:21 414阅读 0赞

字典

字典的优点:

dict key 必须是不可变数据类型,可哈希,

value:任意数据类型。

dict 优点:二分查找去查询

存储大量的关系型数据

特点:无序的(指的是不可人为的去改变顺序)

数据类型划分为:可变数据类型和不可变数据类型

可变数据类型(不可哈希的):

list、dict、set

不可变数据类型(可哈希的):

int、str、tuple、bool

定义一个字典

dict1 = {‘age‘: 25, ‘sex‘: ‘男‘, ‘hight‘: 171}

字典的增

dict1[‘eye‘] = ‘blue‘

{‘age‘: 25, ‘sex‘: ‘男‘, ‘hight‘: 171, ‘eye‘: ‘blue‘}

# setdefault 函数

字典中有这个键,就什么都不做

dict1.setdefault(‘eye‘, ‘green‘)

{‘age‘: 25, ‘sex‘: ‘男‘, ‘hight‘: 171, ‘eye‘: ‘blue‘}

字典中没有这个键,就增加

dict1.setdefault(‘city‘, ‘hangzhou‘)

{‘age‘: 25, ‘sex‘: ‘男‘, ‘hight‘: 171, ‘eye‘: ‘blue‘, ‘city‘: ‘hangzhou‘}

不指定值,则默认为None

dict1.setdefault(‘city‘)

{‘age‘: 25, ‘sex‘: ‘男‘, ‘hight‘: 171, ‘eye‘: ‘blue‘, ‘city‘: None}

字典的删除

最原始的方法,但是如果删除的键不存在则会报错导致程序崩溃 无返回值

del dict1[‘age‘]

# 保险的方法 pop函数

如果有键则删除,没有就返回指定的None,返回值是指定键的值

dict1.pop(‘age‘, None)

清空字典

dict1.clear()

随机删除一个键 有返回值,以元组形式的键值对

dict1.popitem()

字典的修改

直接修改

dict1[‘age‘] = 35

update函数 更新合并

dic = {‘names‘: ‘jm001‘, ‘sex‘: ‘woman‘}

dict2 = {‘hight‘: 172}

dic2更新合并dic

dict2.update(dic)

{‘hight‘: 172, ‘names‘: ‘jm001‘, ‘sex‘: ‘woman‘}

字典的查

dict1 = {‘age‘: 25, ‘sex‘: ‘男‘, ‘hight‘: 171}

dict1.keys()

dict_keys([‘age‘, ‘sex‘, ‘hight‘])

dict1.values()

dict_values([25, ‘男‘, 171])

dict1.items()

dict_items([(‘age‘, 25), (‘sex‘, ‘男‘), (‘hight‘, 171)])

位置的交换

a = 1

b = 2

b, a = a, b

2 1

a, b = [1, 2]

1 2

a, b = [2,3], [5,6]

[2, 3] [5, 6]

原始的查找,如果找不到会报错

dict1[‘age‘]

get函数查找,找不到就默认返回None,当然也可以指定

dict1.get(‘age‘, None)

字典的混合使用

dict_json = {

‘city‘: [‘北京‘, ‘上海‘, ‘杭州‘],

‘data‘: {

‘name‘: ‘jm001‘,

‘sex‘: ‘xiaoxinggan‘,

‘video_list‘: [‘s‘, ‘a‘, ‘d‘]

},

‘age‘: 25

}

向city字段里面追加 深圳

dict_json[‘city‘].append(‘深圳‘)

print(dict_json)

{‘city‘: [‘北京‘, ‘上海‘, ‘杭州‘, ‘深圳‘], ‘data‘: {‘name‘: ‘jm001‘, ‘sex‘: ‘xiaoxinggan‘, ‘video_list‘: [‘s‘, ‘a‘, ‘d‘]}, ‘age‘: 25}

把data里的sex 值全部改为大写

dict_json[‘data‘][‘sex‘] = dict_json[‘data‘][‘sex‘].upper()

print(dict_json)

{‘city‘: [‘北京‘, ‘上海‘, ‘杭州‘, ‘深圳‘], ‘data‘: {‘name‘: ‘jm001‘, ‘sex‘: ‘XIAOXINGGAN‘, ‘video_list‘: [‘s‘, ‘a‘, ‘d‘]}, ‘age‘: 25}

向s里面添加键值对 hobby:eat

dict2 = {‘hobby‘: ‘eat‘}

dict_json[‘data‘][‘video_list‘].append(dict2)

print(dict_json)

{‘city‘: [‘北京‘, ‘上海‘, ‘杭州‘, ‘深圳‘], ‘data‘: {‘name‘: ‘jm001‘, ‘sex‘: ‘xiaoxinggan‘, ‘video_list‘: [‘s‘, ‘a‘, ‘d‘, {‘hobby‘: ‘eat‘}]}, ‘age‘: 25}

需求

随便输入一个字符串中包含数字和字母的,找出相连整数出现的次数

info = input(‘>>>‘)

for i in info:

if i.isalpha():

info = info.replace(i, ‘ ‘)

res = info.split()

l = len(res)

print(l)

这里需要注意一下,for循环一个不可变类型,其实是一开始就将整个循环次数循序的机制读取到内存中,不管这个类型在你操作后怎么变化,这些机制是从始至终都要执行完毕的

发表评论

表情:
评论列表 (有 0 条评论,414人围观)

还没有评论,来说两句吧...

相关阅读