字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组
字典的使用
在某些情况下,字典比列表更加适用:
1、表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组
2、存储文件修改时间,用文件名作为键;
3、数字电话\地址薄
创建字典的五种方式
# 字典的创建方式 # 方式一 {key: value} dict1 = {'one': 1, 'two': 2, 'three': 3} print(dict1) # 方式二 dict(zip(keys, values)) # dict([(k, v), (k, v)]) dict2 = dict([('one', 1), ('two', 2), ('three', 3)]) print(dict2) # dict(((k, v), (k, v))) dict3 = dict((('one', 1), ('two', 2), ('three', 3))) print(dict3) # 方式三 dict(key=value) dict4 = dict(one=1, two=2, three=3) print(dict4) # 方式四 字典推导式 lst1 = ['one', 'two', 'three'] lst2 = [1, 2, 3] dict5 = {lst1[i]: lst2[i] for i in range(len(lst1))} print(dict5) # 方式五 fromkeys # 没有指定value,默认None dict6 = dict.fromkeys(['k1', 'k2', 'k3']) print(dict6) # {'k1': None, 'k2': None, 'k3': None} # 指定value dict7 = dict.fromkeys(['k1', 'k2', 'k3'], 'value') print(dict7) # {'k1': 'value', 'k2': 'value', 'k3': 'value'}
字典的示例
1. setdefault使用
# 有则不变,无则增加 dic1 = {'name': 'lucy', 'age': 18} dic1.setdefault('age', 45) # {'name': 'lucy', 'age': 18} dic1.setdefault('sex', '男') # {'name': 'lucy', 'age': 18, 'sex': '男'}
2. pop使用
# 按照键删除键值对,有返回值 # 如果设置了第二个参数则无论字典中有无此键都不会报错 dic2 = {'name': 'lucy', 'age': 18} ret2 = dic2.pop('age') print(ret2) # 18 print(dic2) # {'name': 'lucy'} dic3 = {'name': 'lucy', 'age': 18} ret3 = dic3.pop('sex', '没有此键') print(ret3) # 没有此键 print(dic3) # {'name': 'lucy', 'age': 18}
3. clear使用
# 清空 dic4 = {'name': 'lucy', 'age': 18} dic4.clear() print(dic4) # {}
4. get使用
dic5 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']} l1 = dic5.get('hobby_list') print(l1) # ['study', 'play', 'shopping'] l2 = dic5.get('sex') print(l2) # None l3 = dic5.get('sex', '没有此键') print(l3) # 没有此键
5. keys()使用
dic6 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']} # 1. 特殊的数据类型,类似于列表,但是没有索引 print(dic6.keys(), type(dic6.keys())) # dict_keys(['name', 'age', 'hobby_list']) <class 'dict_keys'> # 2. 可以转化成列表 l1 = list(dic6.keys()) print(l1) # ['name', 'age', 'hobby_list'] # 3. 循环遍历 for k in dic6.keys(): print(k, end=',') # name,age,hobby_list, for k in dic6: print(k, end=',') # name,age,hobby_list,
6. values()使用
dic7 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']} # 1. 特殊的数据类型,类似于列表,但是没有索引 print(dic7.values()) # dict_values(['lucy', 18, ['study', 'play', 'shopping']]) # 2. 可以转化成列表 print(list(dic7.values())) # ['lucy', 18, ['study', 'play', 'shopping'] # 3. 循环遍历 for val in dic7.values(): print(val, end=',') # lucy,18,['study', 'play', 'shopping'],
7. items()使用
dic8 = {'name': 'lucy', 'age': 18, 'hobby_list': ['study', 'play', 'shopping']} print(dic8.items()) # dict_items([('name', 'lucy'), ('age', 18), ('hobby_list', ['study', 'play', 'shopping'])]) for it in dic8.items(): print(it) # ('name', 'lucy') # ('age', 18) # ('hobby_list', ['study', 'play', 'shopping']) # 利用了元组的拆包 for key, value in dic8.items(): print(key, value) # name lucy # age 18 # hobby_list ['study', 'play', 'shopping']
8. update()使用
# 更新,有则覆盖,无则添加 # 1. 增加键值对 # 方式一: dic9 = {'name': 'lucy', 'age': 18} dic9.update(hobby='运动', hight=178) print(dic9) # {'name': 'lucy', 'age': 18, 'hobby': '运动', 'hight': 178} # 方式二: dic10 = {'name': 'lucy', 'age': 18} dic10.update([('hobby', '运动'), ('hight', 178)]) print(dic10) # {'name': 'lucy', 'age': 18, 'hobby': '运动', 'hight': 178} # 方式三: dic11 = {'name': 'lucy', 'age': 18} dic12 = {'name': 'tom', 'hight': 178} dic11.update(dic12) print(dic11) # {'name': 'tom', 'age': 18, 'hight': 178} # 2. 修改键所对应的值 dic13 = {'name': 'lucy', 'age': 18} dic13.update(name='tom') print(dic13) # {'name': 'tom', 'age': 18}
9. fromkeys()使用
# 没有指定value,默认None dict14 = dict.fromkeys(['k1', 'k2', 'k3']) print(dict14) # {'k1': None, 'k2': None, 'k3': None} # 指定value dict14 = dict.fromkeys(['k1', 'k2', 'k3'], 'value') print(dict14) # {'k1': 'value', 'k2': 'value', 'k3': 'value'}
10. copy使用
# 浅拷贝 dict15 = dict(one=1, two=2, three=3) dict16 = dict15.copy() print(dict16)
11. popitem()使用
# 随机删除字典中的一对 键和值 dict17 = dict(one=1, two=2, three=3) a = dict17.popitem() print(a) print(dict17)
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】