最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东
用的最多的还是 list 和 tuple (网上查 用法一大堆)
看了一下创建字典的方法:
方法1:
dict = {'name': 'earth', 'port': 80}
方法2:
fdict = dict((['x', 1], ['y', 2]))
方法3:
ddict = {}.fromkeys(('x', 'y'), -1)
都实验了一下这些方法,发现不好用,做不出来自己想要的结果,因为数据库查找出来的结果是tuple类型的,不能改变,用方法2,必须得确保里面
是list (在这里提一下,tuple和list类型互换的方法 l=tuple(l) l = list(l))
在做练习的时候突然看到了一种方法,先声明一个
fdict= {}
然后
fdict[keys] = values
然后接下来继续循环这个式子就行了,结果能一个一个添加到fdict中,而不会被覆盖,以前还以为会默认覆盖成新的
用这种方法,一下就把结果转成了键值对
python中传值其实传的是地址:
例子:
a = [1,2,3,4]
b = a
a.append(1)
print a
print b
结果可以发现两个结果都为:[1,2,3,4,1]
这说明 python中的一个变量给另一个变量赋值时,传的是地址,所以当a指向的值变化时,b由于获得的是指向a的一个指针,所以结果也会
跟a的输出结果一样
more experiments:
a = [1,2,3,4]
b = a
a += [1] #在尾部增加一个list值
print a
print b
可以看到结果为:
[1, 2, 3, 4, 1]
[1, 2, 3, 4, 1]
这个没有什么问题,还是跟上面的解释一样,传的是地址,无论a怎么添加,b都是跟a地址相同的输出
再看下一个实验:
a = [1,2,3,4]
b = a
a = a + [1] #在尾部增加一个list值
print a
print b
读者可以试着跑一下看看结果
运行的结果为:
[1,2,3,4,1]
[1,2,3,4]
这是为什么呢?
为什么 += 和分开相加之后就不同结果了呢
通过查资料,我确信了以下解释:
当a = a+[1]时,系统所做的是把a + [1]的结果先放到另外一个地址c中,然后再把a指向这个c地址,所以输出a的时候,结果是可想而知的
但是b还是指向以前a的位置,以前位置的值并没有变化,所以b才会输出这样一个令人稍感诧异的值
而+=操作,还是在原来a指向的地址上进行操作,所以b也会跟着变化
总结:python中一个变量给另一个变量进行赋值操作(=)时,传的不是值,而是指针地址,一定要谨慎操作,避免掉坑
以上这篇python dict 字典 以及 赋值 引用的一些实例(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 群星.1996-各自各精彩【上华】【WAV+CUE】
- 《终极幸运之塔》评测:藏在童年回忆里爬塔佳作
- 《战神5》PC版评测:轻推W缓慢前行
- 《阿瑞亚之旅》评测:更适合佛系玩家体质的跑团
- 黑神话悟空浮屠界紫门怎么开 浮屠界紫门打开方法介绍
- 黑神话悟空龟泪怎么获得 黑神话悟空龟泪获得方法介绍
- 黑神话悟空怎么获得还魂丹 黑神话悟空还魂丹获取方法一览
- HiFi顶级人声天碟《试音齐秦》wav
- 张敬轩.2012-WhyNot(EP)【环球】【WAV+CUE】
- 张小英1988-情愁[新加坡复黑版][WAV+CUE]
- 游民金币礼品补货啦 Steam充值卡等你兑换!
- 《暗喻幻想:ReFantazio》M站均分94分 近年最好的RPG游戏之一
- 今年第一项诺贝尔奖揭幕 生理学或医学奖揭晓
- 《梁静茹 华语乐坛情歌天后 爱久见人心》[WAV/分轨][360MB]
- 《田震 绝版珍藏 依然在飞》[WAV+CUE][600MB]