首页 文章资讯内容详情

python中dict操作集合

2026-06-01 4 花语

本文内容纲要:

字段是Python是字典中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快。下面列出字典的常用的用途.

一、字典中常见方法列表

复制代码代码如下:

#方法#描述

-------------------------------------------------------------------------------------------------

D.clear()#移除D中的所有项

D.copy()#返回D的副本

D.fromkeys(seq[,val])#返回从seq中获得的键和被设置为val的值的字典。可做类方法调用

D.get(key[,default])#如果D[key]存在,将其返回;否则返回给定的默认值None

D.has_key(key)#检查D是否有给定键key

D.items()#返回表示D项的(键,值)对列表

D.iteritems()#从D.items()返回的(键,值)对中返回一个可迭代的对象

D.iterkeys()#从D的键中返回一个可迭代对象

D.itervalues()#从D的值中返回一个可迭代对象

D.keys()#返回D键的列表

D.pop(key[,d])#移除并且返回对应给定键key或给定的默认值D的值

D.popitem()#从D中移除任意一项,并将其作为(键,值)对返回

D.setdefault(key[,default])#如果D[key]存在则将其返回;否则返回默认值None

D.update(other)#将other中的每一项加入到D中。

D.values()#返回D中值的列表

二、创建字典的五种方法

方法一:常规方法

复制代码代码如下:

#如果事先能拼出整个字典,则此方法比较方便

D1={name:Bob,age:40}

方法二:动态创建

复制代码代码如下:

#如果需要动态地建立字典的一个字段,则此方法比较方便

D2={}

D2[name]=Bob

D2[age]=40

D2

{age:40,name:Bob}

方法三:dict--关键字形式

复制代码代码如下:

#代码比较少,但键必须为字符串型。常用于函数赋值

D3=dict(name=Bob,age=45)

D3

{age:45,name:Bob}

方法四:dict--键值序列

复制代码代码如下:

#如果需要将键值逐步建成序列,则此方式比较有用,常与zip函数一起使用

D4=dict([(name,Bob),(age,40)])

D4

{age:40,name:Bob}

复制代码代码如下:

D=dict(zip((name,bob),(age,40)))

D

{bob:40,name:age}

方法五:dict--fromkeys方法#如果键的值都相同的话,用这种方式比较好,并可以用fromkeys来初始化

复制代码代码如下:

D5=dict.fromkeys([A,B],0)

D5

{A:0,B:0}

如果键的值没提供的话,默认为None

复制代码代码如下:

D3=dict.fromkeys([A,B])

D3

{A:None,B:None}

三、字典中键值遍历方法

复制代码代码如下:

D={x:1,y:2,z:3}#方法一

forkeyinD:

printkey,=>,D[key]

y=>2

x=>1

z=>3

forkey,valueinD.items():#方法二

printkey,=>,value

y=>2

x=>1

z=>3

forkeyinD.iterkeys():#方法三

printkey,=>,D[key]

y=>2

x=>1

z=>3

forvalueinD.values():#方法四

printvalue

2

1

3

forkey,valueinD.iteritems():#方法五

printkey,=>,value

y=>2

x=>1

z=>3

Note:用D.iteritems(),D.iterkeys()的方法要比没有iter的快的多。

四、字典的常用用途之一代替switch

在C/C++/Java语言中,有个很方便的函数switch,比如:

复制代码代码如下:

publicclasstest{

publicstaticvoidmain(String[]args){

Strings="C";

switch(s){

case"A":

System.out.println("A");

break;

case"B":

System.out.println("B");

break;

case"C":

System.out.println("C");

break;

default:

System.out.println("D");

}

}

}

在Python中要实现同样的功能,

方法一,就是用if,else语句来实现,比如:

复制代码代码如下:

from__future__importdivision

defadd(x,y):

returnx+y

defsub(x,y):

returnx-y

defmul(x,y):

returnx*y

defdiv(x,y):

returnx/y

defoperator(x,y,sep=+):

ifsep==+:printadd(x,y)

elifsep==-:printsub(x,y)

elifsep==*:printmul(x,y)

elifsep==/:printdiv(x,y)

else:printSomethingWrong

print__name__

if__name__==__main__:

x=int(raw_input("Enterthe1stnumber:"))

y=int(raw_input("Enterthe2ndnumber:"))

s=raw_input("Enteroperationhere(+-*/):")

operator(x,y,s)

方法二,用字典来巧妙实现同样的switch的功能,比如:

复制代码代码如下:

#coding=gbk

from__future__importdivision

x=int(raw_input("Enterthe1stnumber:"))

y=int(raw_input("Enterthe2ndnumber:"))

defoperator(o):

dict_oper={

+:lambdax,y:x+y,

-:lambdax,y:x-y,

*:lambdax,y:x*y,

/:lambdax,y:x/y}

returndict_oper.get(o)(x,y)

if__name__==__main__:

o=raw_input("Enteroperationhere(+-*/):")

printoperator(o)

本文内容总结:

原文链接:https://www.cnblogs.com/mxh1099/p/8512552.html