源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-30 01:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python dict 字典 以及 赋值 引用的一些实例(详解)
最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东 用的最多的还是 list 和 tuple (网上查 用法一大堆) [b]看了一下创建字典的方法:[/b] [b]方法1:[/b] dict = {'name': 'earth', 'port': 80} [b]方法2:[/b] fdict = dict((['x', 1], ['y', 2])) [b]方法3:[/b] ddict = {}.fromkeys(('x', 'y'), -1) 都实验了一下这些方法,发现不好用,做不出来自己想要的结果,因为数据库查找出来的结果是tuple类型的,不能改变,用方法2,必须得确保里面 是list (在这里提一下,tuple和list类型互换的方法 l=tuple(l) l = list(l)) 在做练习的时候突然看到了一种方法,先声明一个 fdict= {} 然后 fdict[keys] = values 然后接下来继续循环这个式子就行了,结果能一个一个添加到fdict中,而不会被覆盖,以前还以为会默认覆盖成新的 用这种方法,一下就把结果转成了键值对 python中传值其实传的是地址: [b]例子:[/b] 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也会跟着变化 [b]总结:[/b][b]python中一个变量给另一个变量进行赋值操作(=)时,传的不是值,而是指针地址,一定要谨慎操作,避免掉坑[/b] 以上这篇python dict 字典 以及 赋值 引用的一些实例(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部