zoukankan      html  css  js  c++  java
  • Python Dictionary 字典

    字典反转(reverse/inverse dictionary/mapping)

    Python字典反转就是将原字典的key作为value,而原来的value作为key,得到新的一个字典。如:

    原字典为:

    d = { 'a': 1, 'b':2 }

    将原字典反转得到新的字典:

    r_d = { 1: 'a', 2: 'b' }

    Python字典反转的实现

    我们当然可以用foreach来实现字典反转。这里给大家一个更简洁的方法,可以用一行Python代码实现字典的反转:

    dict((v,k) for k, v in map.iteritems())

    Python使用动态变量名

    要写一个程序,让linuxany1=1,linuxany2=2,… inuxany100=100,你会怎么做?

    最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已。

    要获取这个字典,直接用locals和globals函数即可。

    >>> names = locals()
    >>> for i in xrange(1, 101):
    ...   names['linuxany%s' % i] = i
    ...
    >>> linuxany1
    1
    >>> linuxany2
    2
    >>> linuxany100
    100

    不过你也许会说这个例子没什么用,毕竟用数组来实现更为实用。

    举一个例子:服务器使用一种对象数据库,可以直接保存对象到数据库中。服务器列出目前支持的所有类,而用户想添加一个不存在于列表中的类,于是向服务器发送一段JSON或XML文本。

    服务器解析这段文本,将它转换成一个class对象,并且设置类名。之后用户就可以随意生成这个类的对象。

    关键是这个数据库和类名相关,你不能用一个通用的Object类来保存所有的对象,否则查询时就乱套了。

    除了动态设置变量名,动态删除也是可以的,例如

    del locals()['linuxany1']
  • 相关阅读:
    PageObject小结
    python函数默认参数坑
    编译Android 8.0系统 并刷入pixel
    CF 289 F. Progress Monitoring DP计数
    EDU 61 F. Clear the String 区间dp
    Educational Codeforces Round 55 G 最小割
    Educational Codeforces Round 55 E 分治
    hdu 6430 bitset暴力
    AC自动机+DP codeforces86C
    CF895C dp/线性基
  • 原文地址:https://www.cnblogs.com/zhongbin/p/3273053.html
Copyright © 2011-2022 走看看