數據類型的划分:可變數據類型和不可變數據類型。
不可變數據類型(可哈希):元祖、bool、int、str
可變數據類型(不可哈希):list、dict,set(集合)
dict(字典):
dict(字典):映射數據類型
dict = {"key":value}
dict key 必須不可變數據類型,可哈希。
value 任意數據類型
dict 優點:二分法查找去查詢
存儲大量的關系型數據
特點:無序的(3.5及其之前的版本)
# dict = {
# 'name':['韓非','黃有華','林穎','謝龍','李霞霞','紀偉鵬'],
# '配送':[{'num':12,'avera_age':20}],
# True:1,
# (1,2,3):'wuyiyi',
# 2:'二哥',
# }
# print(dict)
#例子
# dict1 = {'age':18,'name':'jone','sex':'male'}
#增 dict['key']:value 或 setdefault(key,value)
# dict1['hight']=185 #沒有鍵值對,添加
# dict1['age'] = 16 #如果有鍵值對,則值覆蓋
# print("dict1['hight']=185 and dict1['age']=16",dict1)
# 輸出結果:
# dict1['hight']=185 and dict1['age']=16 {'hight': 185, 'sex': 'male', 'age': 16, 'name': 'jone'}
#setdefault() 已經存在鍵值對,不做任何改變,沒有在添加
# dict1.setdefault('weight',150)
# dict1.setdefault('name','alex')
# print(dict1)
# 輸出結果:
# dict1['hight']=185 and dict1['age']=16 {'hight': 185, 'sex': 'male', 'age': 16, 'name': 'jone'}
#刪 pop(key,'設置返回值')、popitem(key)隨機刪除,有返回值、del dict[key] 不存在會報錯、clear()清空字典
#ps:None是一種數據類型
# print(dict1.pop('age'),dict1)
# print(dict1.pop('yijiajun',None),dict1)
# 輸出結果:
# 18 {'name': 'jone', 'sex': 'male'}
# None {'name': 'jone', 'sex': 'male'}
# print(dict1.popitem(),dict1)
# 輸出結果:
# ('name', 'jone') {'sex': 'male', 'age': 18}
# del dict1['age']
# print(dict1)
# 輸出結果:
# {'name': 'jone', 'sex': 'male'}
# del dict1
# print(dict1)
# 輸出結果:
# print(dict1)
# NameError: name 'dict1' is not defined
#改
# dict1['age'] = 20
# print(dict1)
# 輸出結果:
# {'name': 'jone', 'sex': 'male', 'age': 20}
#update() 已經存在的鍵值對,會更新value,不存在的鍵值對,則添加
# dict2 = {'name':'yijiajun','heigh':175,'weight':75}
# dict1.update(dict2)
# print(dict1,dict2)
#查
# print(dict1.keys(),type(dict1.keys()))
# print(dict1.values(),type(dict1.values()))
# print(dict1.items(),type(dict1.items()))
# print(dict1.get('name'),type(dict1.get('name')))
# print(dict1.get('yijia'),'不存在key')
# 輸出結果:
# dict_values([18, 'male', 'jone']) <class 'dict_values'>
# dict_items([('age', 18), ('sex', 'male'), ('name', 'jone')]) <class 'dict_items'>
# jone <class 'str'>
# None 不存在key
#for .....in.....遍歷任何項目的序列
#遍歷key
#方法一
# for i in dict1.keys():
# print(i)
#方法二
# for i in dict1:
# print(i)
#遍歷value
# for i in dict1.values():
# print(i)
#以元祖的形式同時遍歷key和value
# for i in dict1.items():
# print(i,type(i))
# 輸出結果:
# ('sex', 'male') < class 'tuple'>
# ('name', 'jone') <class 'tuple'>
# ('age', 18) < class 'tuple'>
#以字符串的形式同時遍歷key和value
# for k,v in dict1.items():
# print(k,v,type(k),type(v))
# 輸出結果:
# dict_values([18, 'male', 'jone']) <class 'dict_values'>
# dict_items([('age', 18), ('sex', 'male'), ('name', 'jone')]) <class 'dict_items'>
# jone <class 'str'>
# None 不存在key
#字典嵌套
# dic = {
# 'name':['yijiajun','yijiaping','yijiaxing'],
# 'home.yee':{
# 'born' :1995,
# 'count':85,
# 'old':'grandfather'
# },
# True:1,
# (1,2,3):'yimeiling',
# 'age':21
#
# }
# dic['age'] = 56
# dic['name'][0] = dic['name'][0].upper()
# dic['name'].append('wangxizhi')
# dic['home.yee']['color'] = 'red'
# dic['home.yee'].setdefault('like','fish')
# dic['home.yee'].pop('born','已經刪除')
# print(dic['home.yee'].pop('born','已經刪除'))
#課間題 統計數字出現的次數(連續的數字為1個)
info = input('請輸入您要檢測的數字:').strip()
for i in info:
if i.isalpha():
info = info.replace(i,' ')
l = info.split( )
print(l)
print(len(l))
