什么是list:

list 觉得算是python日常编程中用的最多的python自带的数据结构了。但是python重的list跟其他语言中的并不相同。

少年..不知道你听说过python中的append方法比insert方法的效率高非常多呢?什么,你不知道?请容老衲慢慢道来。

其他编程语言中list也叫链表,大抵就是除了最后一个元素外,所有元素的中都有一个指针,这个指针只想下一个元素节点的引用。

如果你想添加元素的话 把最后一个元素里的指针指向你想要app元素即可,插入呢?嘿嘿 这个时候你只要把要插入元素之前的元素指向你想插入的元素,然后把你想插入的元素指向之前的元素即可。

听起来不错是吧?
 其实用起来也不错!(当然这里指的是单向列表)

而python是这么干的,他存放list结构是一整块内存,试想你买了一桶羽毛球的球 然后你想要取出倒数第二个,想想都是xxxxxx

{但是这两中方法都是互有利弊的,链表的访问某一个元素的复杂度是线性的,也就是one by one的 ,而python中的list是一系列指向内存中value的指针,他可以把访问某一个元素的值的复杂度控制在对数级}

具体到insert操作上面来,原则上来说,每一次insert操作都要移动其右边所有的元素,甚至有的时候还会重新建立一个新的内存空间。为了避免这样,通常会采用动态数组这个概念,核心是刚开始创建的时候,分配一个更大的内存

听起来很扯,而且想想 这样让append跟insert的操作,变得很近似,但是实际上这样的行为的确能降低成本。

我对于list的建议是,如果你有经常操作的,甚至操作量大的要求,那么放过list吧。

什么?字太多了,那么看下代码吧?LOL

思考一个问题?为什么L2会跟着L1改变呢?

然后看看下面这个

其实出现这两种情况的原因是----一切皆对象,我们可以说L1 L2 这两个本身是两个对象,而[1,2,3]也是一个对象,其实在内存中存名字跟存数据是两个不同的区间

说的好像等于没说。。。。。。

想想这样小明跟老王在同一间公司上班,公司老板发善心了,给员工修了个乒乓球台,那么是否可以这样说,小明跟老王的公司都有乒乓球呢?sure!!

有一天小明辞职了,换了一家公司,而老王没有换,那么两个人肯定不在同一家公司啦。。。

----------------------------------------------------------------------------------------------------------------------------------------------

看了上面对list的解答是不是感觉list弱爆了。。。。其实绝多数情况下list给了我们一个简单而且可用性非常高的数据结构,但是我们还是要说说dict

关于dict你可能知道它是无序的,而且是以key,value方式存储数据的而且value也可以存储其他数据结构,你可以在字典里面在放n个字典,而且他们通过

key找value是非常快++的,具体是通过散列法也叫哈希法完成的(),所以字典的长度是不重要的,他的查找速度是线性的 。。。是不是很厉害LOL

python日常-list and dict的更多相关文章

  1. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  2. python入门14 字典dict

    字典dict是无序的key:value格式的数据序列 #coding:utf-8 #/usr/bin/python """ 2018-11-11 dinghanhua 字 ...

  3. Python基础——字典(dict)

    由键-值对构建的集合. 创建 dic1={} type(dic1) dic2=dict() type(dic2) 初始化 dic2={'hello':123,'world':456,'python': ...

  4. 05-深入python的set和dict

    一.深入python的set和dict 1.1.dict的abc继承关系 from collections.abc import Mapping,MutableMapping #dict属于mappi ...

  5. python何时用list,dict,set

    从读取的角度来讲: 看是用来随机读取(查询)还是连续读取. list数组集中存放,连续读取效率高(具体还没测试,理论上应该如此). dict散列表,使用hash计算存放的位置,随机读取效率高. 随机读 ...

  6. Python日常实践(1)——SQL Prompt的Snippets批量整理

    引言 个人平时在写sql脚本的时候会使用到SQL Prompt这款插件,除了强大的智能提示和格式化sql语句功能,我还喜欢使用Snippets代码段功能.比如我们可以在查下分析器输入ssf后按Tab键 ...

  7. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  8. Python~list,tuple^_^dict,set

    tuple~(小括号) list~[中括号] 和list比较,dict有以下几个特点: dict~{‘key’:value,} set~set([1,2,3]) tuple一旦初始化就不能修改~指向不 ...

  9. Python之什么是dict

    我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是,要根据名字 ...

随机推荐

  1. AC小笔记

    1:基本库函数的使用 Rand()函数,可以产生0~32767之间的随机数. a+rand()%(b-a)  可以得到 [a,b] 之间的随机数. 2:基本数据类型的使用 可以使用强制类型转换 例如: ...

  2. AC日记——矩阵交换行 openjudge 1.8 01

    01:矩阵交换行 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换 ...

  3. 微软云Azure Website 远程调试

    微软云Azure Website 远程调试 是可以的 但是只有48小时,要在后台开启,所以还是很麻烦的啊! 但是安全性提高了,不得不承认哦

  4. 在移动端如何选择字体大小和布局的单位,px或dp?

    android开发中,文字大小的单位是sp,非文字的尺寸单位用dp,但是我们在设计稿用的单位是px.这些单位如何换算,是设计师.开发者需要了解的关键. 简单理解的话,px(像素)是我们UI设计师在PS ...

  5. 点透 & 解决方案

    点透 & 解决方案 学习map: 现象:再现现象,总结导致点透出现的情况 分析原因 解决办法 现象 再现点透现象请使用一下方式: 手机访问传送门 复制链接到连图生成二维码后扫一扫 或者打开ch ...

  6. React 学习笔记(一)

    React + es6 一.createClass 与 component 的区别 The API (via 'extends React.Component') is similar to Reac ...

  7. Visual Studio 2013编辑HTML文件无设计视图的解决方案

    在Visual Studio 2013中编辑HTML文件,会发现没有设计视图. 解决方法:点击Visual Studio 2013的”工具“菜单,再点击”选项“—>文本编辑器—>文件扩展名 ...

  8. Jquery操作下拉框(DropDownList)实现取值赋值

    Jquery操作下拉框(DropDownList)想必大家都有所接触吧,下面与大家分享下对DropDownList进行取值赋值的实现代码 1. 获取选中项: 获取选中项的Value值: $('sele ...

  9. .htaccess重命名时提示必须键入文件名怎么解决

    在上一篇文章中提到过“目前data.uploads有执行.php权限,非常危险,需要立即取消目录的执行权限!”的时候可以通过创建一个名字为“.htaccess”的文件夹解决.但是在创建的时候却发现对记 ...

  10. 微软职位内部推荐-SW Engineer II for Cloud Service

    微软近期Open的职位: Positions: SDE for Big Data Cloud Services Azure Big Data Cloud Services and Cosmos are ...