有个不定长的列表,想把列表中的每个值当做字典的key, 初始值为空列表,于是想到了fromkeys这个方法

In [337]: l = ['a','b','c']

In [338]: res = dict.fromkeys(l, [])

In [339]: res
Out[339]: {'a': [], 'b': [], 'c': []} In [340]: res['a'].append(123) In [341]: res
Out[341]: {'a': [123], 'b': [123], 'c': [123]}

看,问题出现了,本来只想给res['a']赋值,结果所有的键值对都被赋值了,这是因为,用fromkeys设置默认值的时候,如果值是[], 表示的是一个对象,并且是同一个对象,就和函数的默认参数设置成空列表是一个意思

改成这样的话就没问题

In [342]: res = {'a': [], 'b': [], 'c': []}

In [343]: res['a'].append(123)

In [344]: res
Out[344]: {'a': [123], 'b': [], 'c': []}

但是这种没办法处理不定长的列表了
还要一种方法:

In [347]: res = dict([(k, []) for k in l])

In [348]: res
Out[348]: {'a': [], 'b': [], 'c': []} In [349]: res['a'].append('') In [350]: res
Out[350]: {'a': [''], 'b': [], 'c': []}

最新文章

  1. 【FLUENT案例】02:DPM模型
  2. 关于u32中查找和定位最后到bit Number of 1 Bits
  3. Objective-C:Foundation框架-常用类-NSMutableString
  4. PS要点
  5. SqlDataAdapter的update方法
  6. python(6)-shutil模块
  7. 终端神器 iterm
  8. js冒泡事件示例
  9. 拉姆达表达式(Lambda Expressions)
  10. Nodejs解析HTML网页模块 jsdom
  11. Problem F: Exponentiation
  12. Unity3d之MiniJson与LitJson之间的较量
  13. Google免费GPU使用教程
  14. CC++语法::数组名退化(array decaying)
  15. About me & 留言板
  16. Confluence设置MySQL数据库报错:必须使用'READ-COMMITTED'作为默认隔离级别。
  17. sql server 小技巧(4) Sql server 排序时让空值排在最后
  18. 【CF884F】Anti-Palindromize 费用流
  19. Web-JSP表单字符验证
  20. Itext读取PDF模板文件渲染数据后创建新文件

热门文章

  1. Hi3518EV300编译U-Boot和内核报错:loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed. Aborted (core dumped)
  2. callback回调函数【转】
  3. Cuba studio框架中使用thymeteaf模板时中文乱码
  4. 命令执行sql
  5. 53、listview、expandableListview如何选中时保持高亮?
  6. seajs引入jquery
  7. Android App程序结构
  8. [oldboy-django][2深入django]django一个请求的生命周期 + WSGI + 中间件
  9. jquery的html、text、val的用法
  10. LAMP第一部分安装mysql -apache -php