不用过多的引用来构造一个字典
问题
你想构造一个不使用引号键值(key)的字典
解决
一旦你积极投入到python中来, 你可以发现你自己需要构造许多的字典。然而,标准的方法,也就是众所周知的字典的显示,比你想象的有一点点混乱。 因为它需要引用键值。 例如:
data = { 'red' : 1, 'green' : 2, 'blue' : 3 }
当键值是标识符的时候,有一个更简洁的方法:
def makedict(**kwargs):
return kwargs
data = makedict(red=1, green=2, blue=3)
你可能也选择去简化他们来获得更高的威力。例如:
def dodict(*args, **kwds):
d = {}
for k, v in args: d[k] = v
d.update(kwds)
return d
tada = dodict(*data.items( ), yellow=2, green=4)
[译者:在python2.3中,tada = dodict(*data.items( ), yellow=2, green=4)
不能执行。有一个语法错误]
讨论
由于需要一定数量的引用,构造一个字典的语法有点乏味。这个配方展示了一种技术,在你写代码时你已经知道他们是标识符了,它可以避免引用键值。。
我经常发现我自己会想念perl的=>操作符, 它很合适从一个文字列表中去建造一个hash(字典在perl里的说法)。
%data = (red => 1, green => 2, blue => 3);
Perl的=>操作符相当于perl的own(译注:不懂perl,不太明白), 除了它隐式引用一个它左边的单词。
Perl的语法和python为传递一个keyword参数的函数调用语法非常相象。 并且,python收集keyword参数到一个字典里的事实给了我启发
当你在python里声明一个函数的时候,你可以随意的决定具有*args 或者**kwds形式的正式的参数列表(如果你想他们两个一起使用,具有**形式的那个必须发放到最后)。 如果你有一个*args, 你的函数能被调用,并且它的特别实参的数量,位置,格式或者种类都是任意的。Python收集所有的特别的位置参数到一个
元组
并且绑定那个元组到标识符args。同样地,如果你有**kwds,你的函数也能被调用,他的特别实参的名字,或者关键字,种类都是任意的。 Python收集所有的特别的名字参数到一个字典里(名字作为键值,他的值作为字典的值)并且绑定这个字典到标识符kwds。 这个配方开发了一种方法,它让python知道怎么样执行后来的任务。
Makedict函数应该是非常有效的,因为编译器正在做的工作相当于带着一个字典文字去做。不可否认那是一个惯用方法。但是他能让很大的字典文字更简洁,更少一些打字的痛苦。当你需要从一个具有key/item对的列表中构造一个字典, 而且有可能要覆盖,或者附加一些特别的命名键值的时候,dodict函数(尽管不太清楚和快速)也不失为一种便利方法。在python2.2中,dodict的前两行能被更简明和快速的等价物来替换:
d = dict(args)
分享到:
相关推荐
资源分类:Python库 所属语言:Python 资源全名:scikit-maad-1.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
最近ubuntu14.04出了问题,pkg-catkin-pkg无法下载,我7月底重装了一次Ubuntu14.04,安装ros lidigo时报错,依赖python-catkin-pkg,但它不会被安装,我刚开始发现这个问题时试过换源,重装系统均不成功,后面去官方...
python库。 资源全名:python-jose-ext-1.3.2.3.tar.gz
python-mox-0.5.3-1.3.src.rpm,devstack部署openstack依赖包
devstack安装报错需要的包 rpm -ivh python-mox-0.5.3-1.3.x86_64.rpm
资源来自pypi官网。 资源全名:python-cfworker-1.3.tar.gz
资源来自pypi官网。 资源全名:arvados-python-client-1.3.1.20190402172810.tar.gz
资源来自pypi官网。 资源全名:python-yr-1.3.1.1.tar.gz
资源来自pypi官网。 资源全名:ksc-sdk-python-1.3.38.tar.gz
python库。 资源全名:troubleshooting-framework-1.3.0.3.tar.gz
资源分类:Python库 所属语言:Python 资源全名:purity-fb-1.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:md-tooltips-1.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
python库。 资源全名:bits-google-1.3.tar.gz
python库。 资源全名:django-categories-1.3b5.tar.gz
python库。资源全名:ec2-security-groups-dumper-1.3.tar.gz
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装
python库。 资源全名:mc-pi-1.0.1.3.tar.gz
python库。 资源全名:indy-node-1.3.62.tar.gz
资源分类:Python库 所属语言:Python 资源全名:raincoat-jackett-1.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059