feishicheng 2020-05-30
######################################################## #字典的创建及其使用 #字典用{}表示 vocaloid_dictionary={#"""key:value"""每个键值对代表一个元素 ‘miku‘:‘01‘, ‘rin‘:‘02‘, ‘ran‘:‘03‘, ‘ruka‘:‘04‘, ‘kaito_meiko‘:[‘05‘,‘06‘] } # print(vocaloid_dictionary) # #字典是无序的:字典的value可以是任意类型。但字典的key不可以为元组,字典 # #字典是无序的,所以不可以通过下标索引,但可以通过key索引其对应的值,但不能切片 # print(vocaloid_dictionary[‘miku‘]) # ###################字典虽然是无序的,但仍然可以进行成员运算,可以进行for循环,但不能使用while循环############# # #在使用成员运算和for循环的时候,默认对key进行操作即默认为方法keys() # print(‘miku‘ in vocaloid_dictionary) # print(‘01‘ in vocaloid_dictionary) # # True # # False # #如果想对value或者键值对进行成员运算和for循环, # #可以使用方法values()和items() # print(‘03‘ in vocaloid_dictionary.values()) # for member,num in vocaloid_dictionary.items(): # print(member,num) # # True # # miku 01 # # rin 02 # # ran 03 # # ruka 04 # # kaito_meiko [‘05‘, ‘06‘] # # # ###########################清空字典与浅拷贝clear()和copy()###################### # dic={‘e‘:‘d‘,‘w‘:‘d‘,‘3‘:‘f‘} # a=dic.copy() # dic.clear() # print(dic,‘\n‘,a) # # {} # # {‘e‘: ‘d‘, ‘w‘: ‘d‘, ‘3‘: ‘f‘} # ##################方法fromkeys(),通过向fromkeys中传入两个参数############################, # # 将第一个参数的每一个元素作为key,将第二个参数作为value赋值给所有key # a={} # a=a.fromkeys([‘miku‘,‘rin‘,‘ran‘],‘vocaloid‘) # print(a) # # {‘miku‘: ‘vocaloid‘, ‘rin‘: ‘vocaloid‘, ‘ran‘: ‘vocaloid‘} # #########################除了可以通过索引取值外,我们还可以通过方法get()取值######################### # #与索引不同的是,当我们索引的key不再字典中时,将会报错 # #而使用get方法时不会报错,我们还可以指定没有对应key是的返回值,默认为None # num=vocaloid_dictionary.get(‘miku‘) # num_error=vocaloid_dictionary.get(‘miko‘,‘39‘) # print(num,num_error) # ####################删除字典元素,再删除字典元素时,我们既可以使用del函数################ # #也可以使用内置方法pop和popitem() # a={‘miku‘:‘1‘,‘rin‘:‘2‘,‘ran‘:‘3‘} # del a[‘miku‘] # #del仅删除元素 # print(a) # b=a.pop(‘rin‘) # #删除元素同时获取删除key对应的value # print(a,b) # c=a.popitem() # #删除元素同时获取其键值对,随机删除 # print(a,c) # # # {‘rin‘: ‘2‘, ‘ran‘: ‘3‘} # # {‘ran‘: ‘3‘} 2 # # {} (‘ran‘, ‘3‘) # # #############################设置键值对与更新键值对,############################# # #在创建好字典后,可以通过setdefault()方法想字典中设置新键值对, # #如果setdefault()传入的key在元字典中已经存在,则获取源字典中的value # #如果setdefault()传出的key不存在源字典,则将setdefault()中的键值对加入源字典中 # num=vocaloid_dictionary.setdefault(‘miku‘,‘001‘) # print(num) new_member=vocaloid_dictionary.setdefault(‘luotianyi‘,‘07‘) # print(new_member) # # # 01 # # 07 #setdefault()是向元字典中添加新值,而update()则是更新源字典中的元素 #当update传入的键值对在源字典中存在时,跟新为传入值,没有则写入 print(vocaloid_dictionary) vocaloid_dictionary.update({‘luotianyi‘:‘007‘}) print(vocaloid_dictionary) #update还支持赋值写法 a={} a.update(miku=‘1‘,rin=2) print(a) # F:\Pycharm\Perject_file\basics_of_list_tump_dict\venv\Scripts\python.exe F:/Pycharm/Perject_file/basics_of_list_tump_dict/basics_of_dictionary.py # {‘miku‘: ‘01‘, ‘rin‘: ‘02‘, ‘ran‘: ‘03‘, ‘ruka‘: ‘04‘, ‘kaito_meiko‘: [‘05‘, ‘06‘], ‘luotianyi‘: ‘07‘} # {‘miku‘: ‘01‘, ‘rin‘: ‘02‘, ‘ran‘: ‘03‘, ‘ruka‘: ‘04‘, ‘kaito_meiko‘: [‘05‘, ‘06‘], ‘luotianyi‘: ‘007‘} # {‘miku‘: ‘1‘, ‘rin‘: 2}
################################################# #元组:元组基本与列表相同,但元祖不可更改,增加,删除。元组一旦赋值, # 只能通过重新赋值改变元组内容 #元组以圆括号表示,可通过索引,切片的方式获取其中元素 #元组属于可迭代对象 vocaloid_tump=(‘miku‘,‘rin‘,‘ran‘,‘ruka‘,[‘kaito‘,‘meiko‘]) # v=vocaloid_tump[0] # vlove=vocaloid_tump[0:2] # print(v,vlove) # for v_name in vocaloid_tump: # print(v_name) #元组不可修改,但仅限于一级元素 v_name=vocaloid_tump[4][0]=‘v_kaito‘ print(‘v_name=‘,v_name) #v_name= v_kaito #元组基本方法count()和index() #与列表基本相同,用于计数和查找