zoukankan      html  css  js  c++  java
  • fromkeys,eval,join的使用

    下面有两个字典dic2,dic3,一个是通过fromkeys生成,一个是手动创建。

    dic2 = dict.fromkeys(['k1', 'k2', 'k3', 'k4'], [])
    dic3 = {'k3': [], 'k2': [], 'k1': [], 'k4': []}
    # 最初两个字典是key value 是一样的
    print(dic2)
    print(dic3)
    print("****************")
    # 对字典的value增加一个值
    dic3['k3'].append('123')
    # 对fromkeys 的字典也增加相同的value
    dic2['k3'].append('123')
    print(dic3)
    print(dic2)
    

      

    虽然说都对两个相同的字典,更新相同的value,但是通过fromkeys创建的字典却更新了所有key的值

    这是为什么呢?

    原因是通过fromkeys创建的字典,其value值对应的是同一个内存地址,更新了其中一个value的值,内存地址值被更新

    当默认的值不是列表,而是字符串时,不会出现这种情况,只会更新要更新的value值

    eval

    可以将指定来源的字符串转为这个字符串所在的内存地址

    class P:
        def func(self):
            print("0")
    p = P()
    getattr(eval("p"),"func")()  #输出0
    print(eval("P"))   #输出<class '__main__.P'>
    

    join

    使用方法:"变量".join"变量"

    将join前面的变量循环插入到后面的变量中间

    s = ":".join("我的还是我的")

    print(s)   #输出     我:的:还:是:我:的

  • 相关阅读:
    大文件上传插件
    大文件上传解决方案
    up7-文件保存位置
    up6-自定义文件存储路径
    up7.1-asp.net-本地测试教程
    文件上传控件产品比较
    IIS支持解析json
    IE8控件安装方法
    IE9控件安装方法
    gets()函数详解和缺陷
  • 原文地址:https://www.cnblogs.com/duanpengpeng/p/9399269.html
Copyright © 2011-2022 走看看