python dict 字典 以及 赋值 引用的一些实例(详解)


Posted in Python onJanuary 20, 2017

最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了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 字典 以及 赋值 引用的一些实例(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的ini文件操作类分享
Nov 20 Python
python动态性强类型用法实例
May 09 Python
python使用in操作符时元组和数组的区别分析
May 19 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python编程之序列操作实例详解
Jul 22 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
python实现贪吃蛇双人大战
Apr 18 Python
Python 中如何写注释
Aug 28 Python
用Python简陋模拟n阶魔方
Apr 17 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 #Python
python 查找字符串是否存在实例详解
Jan 20 #Python
python django 访问静态文件出现404或500错误
Jan 20 #Python
python中实现迭代器(iterator)的方法示例
Jan 19 #Python
Python正则替换字符串函数re.sub用法示例
Jan 19 #Python
Python中二维列表如何获取子区域元素的组成
Jan 19 #Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 #Python
You might like
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python生成随机图形验证码详解
2017/11/08 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
python科学计算之narray对象用法
2019/11/25 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
百度软件工程师职位
2013/02/14 面试题
两只小狮子教学反思
2014/02/05 职场文书
HR求职自荐信范文
2014/06/21 职场文书
妈妈活动方案
2014/08/15 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
外出培训学习心得体会
2016/01/18 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
java泛型通配符详解
2021/07/25 Java/Android
pandas中pd.groupby()的用法详解
2022/06/16 Python