字典
字典的优点:
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)