popitem在python中的用法
字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一内建的映射类型,基本的操作包括如下:(1)len():返回字典中键—值对的数量;
(2)d[k]:返回关键字对于的值;
(3)d[k]=v:将值关联到键值k上;
(4)del d[k]:删除键值为k的项;
(5)key in d:键值key是否在d中,是返回True,否则返回False。
(6)clear函数:清除字典中的所有项
(7)copy函数:返回一个具有相同键值的新字典;deepcopy()函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题
(8)fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None
(9)get函数:访问字典成员
(10)has_key函数:检查字典中是否含有给出的键
(11)items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表
(12)keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器
(13)pop函数:删除字典中对应的键
(14)popitem函数:移出字典中的项
(15)setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值
(16)update函数:用一个字典更新另外一个字典
(17) values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素
一、字典的创建
1.1 直接创建字典
d={'one':1,'two':2,'three':3}
printd
printd['two']
printd['three']
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
>>>
1.2 通过dict创建字典
# _*_ coding:utf-8 _*_
items=[('one',1),('two',2),('three',3),('four',4)]
printu'items中的内容:'
printitems
printu'利用dict创建字典,输出字典内容:'
d=dict(items)
printd
printu'查询字典中的内容:'
printd['one']
printd['three']
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
items中的内容:
[('one',1), ('two',2), ('three',3), ('four',4)]
利用dict创建字典,输出字典内容:
{'four':4,'three':3,'two':2,'one':1}
查询字典中的内容:
>>>
或者通过关键字创建字典
# _*_ coding:utf-8 _*_
d=dict(one=1,two=2,three=3)
printu'输出字典内容:'
printd
printu'查询字典中的内容:'
printd['one']
printd['three']
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
输出字典内容:
{'three':3,'two':2,'one':1}
查询字典中的内容:
>>>
二、字典的格式化字符串
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3,'four':4}
printd
print"three is %(three)s."%d
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'four':4,'three':3,'two':2,'one':1}
threeis3.
>>>
三、字典方法
3.1 clear函数:清除字典中的所有项
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3,'four':4}
printd
d.clear()
printd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'four':4,'three':3,'two':2,'one':1}
{}
>>>
请看下面两个例子
3.1.1
# _*_ coding:utf-8 _*_
d={}
dd=d
d['one']=1
d['two']=2
printdd
d={}
printd
printdd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'two':2,'one':1}
{}
{'two':2,'one':1}
>>>
3.1.2
# _*_ coding:utf-8 _*_
d={}
dd=d
d['one']=1
d['two']=2
printdd
d.clear()
printd
printdd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'two':2,'one':1}
{}
{}
>>>
3.1.2与3.1.1唯一不同的是在对字典d的清空处理上,3.1.1将d关联到一个新的空字典上,这种方式对字典dd是没有影响的,所以在字典d被置空后,字典dd里面的值仍旧没有变化。但是在3.1.2中clear方法清空字典d中的内容,clear是一个原地操作的方法,使得d中的内容全部被置空,这样dd所指向的空间也被置空。
3.2 copy函数:返回一个具有相同键值的新字典
# _*_ coding:utf-8 _*_
x={'one':1,'two':2,'three':3,'test':['a','b','c']}
printu'初始X字典:'
printx
printu'X复制到Y:'
y=x.copy()
printu'Y字典:'
printy
y['three']=33
printu'修改Y中的值,观察输出:'
printy
printx
printu'删除Y中的值,观察输出'
y['test'].remove('c')
printy
printx
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
初始X字典:
{'test': ['a','b','c'],'three':3,'two':2,'one':1}
X复制到Y:
Y字典:
{'test': ['a','b','c'],'one':1,'three':3,'two':2}
修改Y中的值,观察输出:
{'test': ['a','b','c'],'one':1,'three':33,'two':2}
{'test': ['a','b','c'],'three':3,'two':2,'one':1}
删除Y中的值,观察输出
{'test': ['a','b'],'one':1,'three':33,'two':2}
{'test': ['a','b'],'three':3,'two':2,'one':1}
>>>
注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改。deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题。
# _*_ coding:utf-8 _*_
fromcopyimportdeepcopy
x={}
x['test']=['a','b','c','d']
y=x.copy()
z=deepcopy(x)
printu'输出:'
printy
printz
printu'修改后输出:'
x['test'].append('e')
printy
printz
运算输出:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
输出:
{'test': ['a','b','c','d']}
{'test': ['a','b','c','d']}
修改后输出:
{'test': ['a','b','c','d','e']}
{'test': ['a','b','c','d']}
>>>
3.3 fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None
# _*_ coding:utf-8 _*_
d=dict.fromkeys(['one','two','three'])
printd
运算输出:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':None,'two':None,'one':None}
>>>
或者指定默认的对应值
# _*_ coding:utf-8 _*_
d=dict.fromkeys(['one','two','three'],'unknow')
printd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':'unknow','two':'unknow','one':'unknow'}
>>>
3.4 get函数:访问字典成员
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printd.get('one')
printd.get('four')
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
1
None
>>>
注:get函数可以访问字典中不存在的键,当该键不存在是返回None
3.5 has_key函数:检查字典中是否含有给出的键
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printd.has_key('one')
printd.has_key('four')
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
True
False
>>>
3.6 items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
list=d.items()
forkey,valueinlist:
printkey,':',value
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
three :3
two :2
one :1
>>>
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
it=d.iteritems()
fork,vinit:
print"d[%s]="%k,v
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
d[three]=3
d[two]=2
d[one]=1
>>>
3.7 keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printu'keys方法:'
list=d.keys()
printlist
printu'\niterkeys方法:'
it=d.iterkeys()
forxinit:
printx
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
keys方法:
['three','two','one']
iterkeys方法:
three
two
one
>>>
3.8 pop函数:删除字典中对应的键
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
d.pop('one')
printd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
{'three':3,'two':2}
>>>
3.9 popitem函数:移出字典中的项
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
d.popitem()
printd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':1}
{'two':2,'one':1}
>>>
3.10 setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值
# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
printd
printd.setdefault('one',1)
printd.setdefault('four',4)
printd
运算结果:
{'three':3,'two':2,'one':1}
{'four':4,'three':3,'two':2,'one':1}
>>>
3.11 update函数:用一个字典更新另外一个字典
# _*_ coding:utf-8 _*_
d={
'one':123,
'two':2,
'three':3
}
printd
x={'one':1}
d.update(x)
printd
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three':3,'two':2,'one':123}
{'three':3,'two':2,'one':1}
>>>
3.12 values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素
# _*_ coding:utf-8 _*_
d={
'one':123,
'two':2,
'three':3,
'test':2
}
printd.values()
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
[2,3,2,123]
>>>
绛旓細搴旂敤锛 鍐檞hile璇彞鏃跺欓渶瑕鐢鍒皐hile True銆傝繍琛岀殑鏃跺橳rue闇瑕佽浆鎹㈡垚1鍘昏繍琛屻傚鏋滅洿鎺ュ啓while 1:杩愯閫熷害鏇村揩锛屾晥鐜囨洿楂樸3銆乻tr鍜宐ool杞崲 1銆佸瓧绗︿覆鐨勭储寮曚笌鍒囩墖 1.1.绱㈠紩锛氭棦瀛楃鐨勫崰浣嶏紝涓嶅奖鍝嶅師鏈笺備粠闆跺紑濮嬨傝礋鏁颁负浠庡悗寮濮嬩粠-1寮濮嬨1.2.鍒囩墖锛氶【澶翠笉椤捐厷鍘熷垯 搴忓垪鏄Python涓鏈...
绛旓細4銆佸悓涓涓厓绱犱腑鐨鈥滈敭"鍜"鍊尖鐢鈥溾濓紙鍐掑彿锛夊垎闅斻5銆佸垱寤哄瓧鍏告椂锛屽彲浠ヤ娇鐢╠ict锛堬級鏂规硶锛屼篃鍙互鐩存帴鐢ㄢ溾濇潵鍖呮嫭鍏朵腑鐨勫厓绱犮6銆乽pdate鐢ㄤ簬鍚戝瓧鍏镐腑澧炲姞鍏冪礌锛屾垨淇敼瀛楀吀涓殑鍏冪礌銆7銆佹煡璇㈠崟涓厓绱狅細宸茬煡鈥滈敭鈥濇煡璇⑩滃尖濇椂锛屸滈敭鈥濈敤鈥滀滑鈥濓紙涓嫭鍙凤級鍖呮嫭銆8銆popitem鐢ㄤ簬璇诲彇瀛楀吀涓殑1涓厓绱...
绛旓細鍡紝%n涓璶鏄暟瀛鐨浣嶆暟锛屾槸鏁板瓧鐨勶紝涓嶈绠楀瓧绗
绛旓細鍥犱负鍝堝笇琛ㄩ渶瑕侀澶栧唴瀛樿褰曟槧灏勫叧绯伙紝鑰屾暟缁勫彧闇瑕侀氳繃绱㈠紩灏辫兘璁$畻鍑轰笅涓涓妭鐐鐨浣嶇疆锛屾墍浠ュ搱甯岃〃鍗犵敤鐨勫唴瀛樻瘮鏁扮粍澶э紝涔熷氨鏄痙ict姣攍ist鍗犵敤鐨勫唴瀛樺ぇ浜涖備笉杩囦娇鐢python璇存槑瀵规ц兘娌℃湁鏋佺鐨勮姹傦紝鍏蜂綋浣跨敤鍝釜涓昏杩樻槸瑕佺湅椤圭洰鐨勯渶瑕併傚鏋滆В鍐充簡鎮ㄧ殑闂璇烽噰绾筹紒濡傛灉鏈В鍐宠缁х画杩介棶 ...
绛旓細4銆佹垚鍛樿繍绠梚n鍜宯ot in,浠ュ瓧鍏鐨key涓哄噯 print('name' in dic) =True print('dasda' not in dic) =True 5銆佸垹闄 绗竴绉:del dic['name'] 绗簩绉:res=dic.pop('name') //鏍规嵁key鍒犻櫎,鏈夎繑鍥炲,杩斿洖鍊间负key瀵瑰簲鐨剉alue鍊 绗笁绉:res=dic.popitem() //闅忔満鍒,杩斿洖鍊兼槸(key:value),杩斿洖鍊兼牸寮...
绛旓細鍋囪浣犺繕涓嶇煡閬揟ornado鏄粈涔堜篃涓嶇煡閬撲负浠涔堝簲璇ュ瀹冩劅鍏磋叮锛岄偅鎴戝皢鐢ㄧ畝鐭鐨璇濇潵浠嬬粛Tornado杩欎釜椤圭洰銆傚鏋滀綘宸茬粡瀵瑰畠鏈変簡鍏磋叮锛屼綘鍙互璺冲幓鐪嬩笅涓鑺傚唴瀹广俆ornado鏄竴涓鐢≒ython缂栧啓鐨勫紓姝TTP鏈嶅姟鍣紝鍚屾椂涔熸槸涓涓獁eb寮鍙戞鏋躲傝妗嗘灦鏈嶅姟浜嶧riendFeed缃戠珯锛屾渶杩慒acebook涔熷湪浣跨敤瀹冦侳riendFeed缃戠珯鏈夌敤鎴锋暟澶...
绛旓細Python鍒楄〃list 涓锛Python鐨鍒楄〃list绫诲瀷琛ㄧず鐨勬暟鎹細Python鍒楄〃鍦╟python涓琚В閲婁负闀垮害鍙彉鐨勬暟缁勶紝鐢鍏朵粬瀵硅薄缁勬垚鐨勮繛缁暟缁勩傚垪琛ㄤ腑鍏冪礌鍙互鏄浉鍚屾垨涓嶅悓鐨勬暟鎹被鍨嬶紱褰撳垪琛ㄥ厓绱犲鍔犳垨鍒犻櫎鏃讹紝鍒楄〃瀵硅薄鑷姩杩涜鎵╁睍鎴栨敹缂╁唴瀛橈紝淇濊瘉鍏冪礌涔嬮棿娌℃湁缂濋殭锛屾绘槸杩炵画鐨勩Python涓鐨勫垪琛ㄦ槸涓涓簭鍒楋紝涔熸槸涓涓鍣...
绛旓細6锛塧nd閫昏緫鎿嶄綔绗﹀彲浠ュ皢浠绘剰琛ㄨ揪寮忚繛鎺ュ湪涓璧凤紝骞跺緱鍒颁竴涓竷灏旂被鍨嬪 7锛夊紩鍏ュ鎻:a锛塺andom妯″潡b锛塺andint(),杩斿洖涓涓殢鏈鐨鏁存暟import random 鎴 from random import randint()secret=random.randint(1,10)8锛python鏁版嵁绫诲瀷 a锛夋暟鍊肩被鍨:鏁村瀷銆佸竷灏旂被鍨嬨佹诞鐐瑰瀷銆乪璁版硶锛1.5e10锛塨锛夌被鍨嬭浆鎹細 ...
绛旓細import math res = math.log(math.pi+1,math.e)import math #瀵煎叆math鏁版嵁搴 a=math.pi #浠や竴涓间负a 鐢a鏉ヤ唬鏇肯鍦ㄥ嚱鏁颁腑鐨勮繍绠楀氨鍙互 姣斿鍐欎笁瑙掗敟鐨勫叕寮忎腑鐢╝鏉ヤ唬鏇肯鐨勪綅缃
绛旓細(13)pop鍑芥暟:鍒犻櫎瀛楀吀涓搴鐨閿 (14)popitem鍑芥暟:绉诲嚭瀛楀吀涓殑椤 (15)setdefault鍑芥暟:绫讳技浜巊et鏂规硶,鑾峰彇涓庣粰瀹氶敭鐩稿叧鑱旂殑鍊,涔熷彲浠ュ湪瀛楀吀涓笉鍖呭惈缁欏畾閿殑鎯呭喌涓嬭瀹氱浉搴旂殑閿 (16)update鍑芥暟:鐢ㄤ竴涓瓧鍏告洿鏂板彟澶栦竴涓瓧鍏 (17) values鍜宨tervalues鍑芥暟:values浠ュ垪琛ㄧ殑褰㈠紡杩斿洖瀛楀吀涓殑鍊,itervalues杩斿洖鍊煎緱杩唬...