list01 = [‘runoob‘, 786, 2.23, ‘john‘, 70.2] list02 = [123, ‘john‘] print list01 print list02 # 列表截取 print list01[0] print list01[-1] print list01[0:3] # 列表重复 print list01 * 2 # 列表组合 print list01 + list02 # 获取列表长度 print len(list01) # 删除列表元素 del list02[0] print list02 # 元素是否存在于列表中 print ‘john‘ in list02 # True # 迭代 for i in list01: print i # 比较两个列表的元素 print cmp(list01, list02) # 列表最大/最小值 print max([0, 1, 2, 3, 4]) print min([0, 1]) # 将元组转换为列表 aTuple = (1,2,3,4) list03 = list(aTuple) print list03 # 在列表末尾添加新的元素 list03.append(5) print list03 # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list03.extend(list01) print list03 # 统计某个元素在列表中出现的次数 print list03.count(1) # 从列表中找出某个值第一个匹配项的索引位置 print list03.index(‘john‘) # 将对象插入列表 list03.insert(0, ‘hello‘) print list03 # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 print list03.pop(0) print list03 # 移除列表中某个值的第一个匹配项 list03.remove(1) print list03 # 反向列表中元素 list03.reverse() print list03 # 对原列表进行排序 list03.sort() print list03
列表里 a 与 a[:] 不同。
我们可以通过函数 id() 来查看:
会发现得到的两个值不同。
列表解析 List Comprehensions
表达式:[expression for iter_val in iterable if cond_expr] [expression]:最后执行的结果 [for iter_val in iterable]:这个可以是一个多层循环 [if cond_expr]:两个for间是不能有判断语句的,判断语句只能在最后;顺序不定,默认是左到右。
>>> list4=[123,["das","aaa"],234] >>> list4 >>> "aaa" in list4 #in只能判断一个层次的元素 False >>> "aaa" in list4[1] #选中列表中的列表进行判断 True >>> list4[1][1] ‘aaa‘
列表和元组的区别是显然的:列表是动态的,其大小可以该标;而元组是不可变的,一旦创建就不能修改。
从细节上看,Python中的列表是由对其它对象的引用组成的连续数组。指向这个数组的指针及其长度被保存在一个列表头结构中。这意味着,每次添加或删除一个元素时,由引用组成的数组需要该标大小(重新分配)。
不幸的是,在普通链表上“代价很小”的其它一些操作在Python中计算复杂度相对过高。
列表和元组
列表和元组的区别是显然的:
列表是动态的,其大小可以该标 (重新分配);
而元组是不可变的,一旦创建就不能修改。
实际上 列表里面的元素可以是任意的对象,并且列表中维护了一个指针数组,每个指针指向不同的对象。
相关文档
深入 Python 列表的内部实现:http://python.jobbole.com/82549/
[python]list, tuple, dictionary, set的底层细节:https://blog.csdn.net/siyue0211/article/details/80560783
Python列表:初学者应该懂得操作和内部实现:https://mp.weixin.qq.com/s/IkFak4iYYqW7u61P7eu22g
python学习笔记 – list内部实现:https://www.jianshu.com/p/cd75475168ae
从底层理解Python的执行:https://www.csdn.net/article/2015-05-28/2824795
原文:https://www.cnblogs.com/jackson669/p/12988679.html