python dict()的使用问题

今天在用python写爬虫的过程中出现了一个问题,简明表述如下:

example = dict()
list = []
for i in range(0,3,1):
    example[‘key‘] = i
    list.append(example)
print list

输出为:

[{‘key‘: 2}, {‘key‘: 2}, {‘key‘: 2}]

很显然这不是我要的结果,幸运的是很快我就发现了问题所在,即example的定义位置有问题。于是我把定义example的位置放在循环内部重新测试。

list = []
for i in range(0,3,1) :
    example = dict()
    example[‘key‘] = i
    list.append(example)
print list

输出为

[{‘key‘: 0}, {‘key‘: 1}, {‘key‘: 2}]

结果显而易见了,造成之前错误的原因正是我对python中字典理解的不深刻。对于写java的人说,Python里的dict字典类似于java中的对象,所以申请一个字典类似于申请一个对象,是动态可变的。如果在某处修改的字典的一个value,则所有相关联的之前引用到的value值都将被更新到新的值。 

  

时间: 2024-09-29 00:31:55

python dict()的使用问题的相关文章

Python dict & set

1        Dict和Set 1.1   Dict(无序键值不可重复) Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应

Python Dict用法

Operation Result len(a) the number of items in a 得到字典中元素的个数 a[k] the item of a with key k 取得键K所对应的值 a[k] = v set a[k] to v 设定键k所对应的值成为v del a[k] remove a[k] from a 从字典中删除键为k的元素 a.clear() remove all items from a 清空整个字典 a.copy() a (shallow) copy of a 得

Python dict 以 1和True 作为键值的比较

运行环境: 操作系统:Win7 64位 Python版本: 2.7.12 IDE:pycharm 2017.2 测试代码: 测试Python dict 1 和 True 作为键值 测试 demo 如下: #!/usr/bin/env python# -*- coding:utf-8 -*- __author__ = "liukang" dict_test = {}print dict_testdict_test[1] = 1print dict_testdict_test[True]

python dict 排序

我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value来排.到底有多少种方法可以实现对dictionary的内容进行排序输出呢?下面摘取了 一些精彩的解决办法. python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数. sort函数和sorted函数唯一的不同是,sort是在容器内(in-place)排序,so

python dict 字典详解

和列表相同,字典也是许多数据的集合,属于可变序列类型.不同之处在于,它是无序的可变序列,其保存的内容是以“键值对”的形式存放的. 字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为“键值对”. 字典类型很像学生时代常用的新华字典.我们知道,通过新华字典中的音节表,可以快速找到想要查找的汉字.其中,字典里的音节表就相当于字典类型中的键,而键对应的汉字则相当于值. 表 1 Python 字典特征 主要特征 解释 通过键而不是通过索引来读取元素 字

Python dict.has_key() 的说明

Python dict.has_key()方法仅限于Python 2.x使用,对于3.x,此方法已废除. 对于Python 2.x中的dict.has_key()方法,官方文档的说明如下:https://docs.python.org/2/library/stdtypes.html#mapping-types-dict 对于Python 3.x中的dict相关方法,官方文档的说明如下:https://docs.python.org/3.7/library/stdtypes.html#mappin

(翻译)如何对python dict 类型按键(keys)或值(values)排序

如何对dict类型按键(keys)排序(Python 2.4 或更高版本): mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':3} for key in sorted(mydict.iterkeys()): print "%s: %s" % (key, mydict[key]) 结果: alan: 2 bob: 1 carl: 40 danny: 3 摘自 Python FAQ: http://www.python.org/doc/faq

python dict

#!/usr/bin/env python # --*-- encoding:utf-8 --*-- dicta = {'aaa':'bb','age':13} #索引 print(dicta['aaa']) #len print(len(dicta)) #for for i in dicta:#默认循环key print(i) for i in dicta.keys():#循环key print(i) for i in dicta.values():#循环value print(i) for

python dict{}和set([])

200 ? "200px" : this.width)!important;} --> 介绍 dict(dictionary),在其他语言中也称为map,使用键-值(key-value)存储.set和dict类似,也是一组key的集合,但不存储value.字典和set的key都是不允许重复且key不能是列表. 一.dict(字典的缩写) 字典和前面讲的list(列表)很相似,但是list不存在value,同时字典也和xml.json很像.字典使用一对大括号表示 1.创建字典表 创

python dict 与list比较

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度 通过help(dict)可以查找dict有关的函数操作 例如: dt  = dict(name='test', age=20, score=90) 特别注意:1.dict内部存放的顺序和key放入的顺序是没有关系的.                   2.dict的key必须是不可变对象(dict根据key来计算value的存储位置,这个