导航:首页 > 编程语言 > python的list操作

python的list操作

发布时间:2023-08-03 07:39:42

1. python中的list

list是一个函数,将参数强制转换成列表
list((1,4,7)) 对元组(1,4,7)使用list函数就返回列表[1,4,7]
map(list,zip(*a))表示对zip(*a)的每一个单位都执行list函数
而且这在python 2.6.6中执行正常,执行效果如下
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> map(list,zip(*a))
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

2. python 列表操作

list1=[1,2,3,4,5,6,6,6,7,8,9]
newlist=[Trueifi>3andi<5elseFalseforiinlist1]

3. python内置数据类型列表list和字典dict的性能

    我们来讨论下python的两种最重要的内置数据类型列表list和字典dict上,各种操作的复杂度。

list列表数据类型常用操作性能:

1、按索引取值和赋值(v=a[i],a[i]=v)

由于列表的随机访问特性,这两个操作执行时间与列表大小无关,均为O(1)

2、列表的曾长,可以选择append()和_add_() "+"

list.append(v)的执行时间O(1)

list = list + [v],执行时间是O(n+k),因为新增了一个新的列表,其中k是被加的列表长度

举例:4种生成前n个整数列表的方法

如图:

我们可以计算一下这四个函数的耗时,如下

执行结果:

我们可以看到,4种方法运行时间差别很大,test1使用列表连接最慢,而test4使用list range最快,速度相差近200倍。

    如下图,我们总结下list基本操作的性能如何:

上图可知pop()从列表末尾移除元素O(1),但是pop(i)从列表中间移除元素要O(n),为什么呢?

因为从中部移除元素,要把移除元素后面的元素全部向前挪一位,才保证了列表按索引取值和赋值很快,达到O(1)。

dict数据类型:

    字典和列表不同,dict根据key找到value,而list根据index。

    字典最常用的取值get和赋值set,其性能为O(1),而contain(in)操作判断字典是否存在某个key,其性能也是O(1)

list和dict的in操作对比:

    设计一个性能试验,验证list中检索一个值,对比dict中检索一个值的耗时对比。如下程序:

如果如下:

可见list的in操作复杂度为O(n)

PS:大家可以去python官方的算法复杂度网站看看:

https://wiki.python.org/moin/TimeComplexity

4. python中list添加append元素有顺序吗


List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作)。
在Python中,向List添加元素,方法有如下4种方法(append(),extend(),insert(), +加号)
1. append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型。
此元素如果是一个list,那么这个list将作为一个整体进行追加,注意append()和extend()的区别。

复制代码代码如下:

>>> list1=['a','b']
>>> list1.append('c')
>>> list1
['a', 'b', 'c']

2. extend() 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数;extend()相当于是将list B 连接到list A上。

复制代码代码如下:

>>> list1
['a', 'b', 'c']
>>> list1.extend('d')
>>> list1
['a', 'b', 'c', 'd']

3. insert() 将一个元素插入到列表中,但其参数有两个(如insert(1,”g”)),第一个参数是索引点,即插入的位置,第二个参数是插入的元素。

复制代码代码如下:

>>> list1
['a', 'b', 'c', 'd']
>>> list1.insert(1,'x')
>>> list1
['a', 'x', 'b', 'c', 'd']

4. + 加号,将两个list相加,会返回到一个新的list对象,注意与前三种的区别。前面三种方法(append, extend, insert)可对列表增加元素的操作,他们没有返回值,是直接修改了原数据对象。 注意:将两个list相加,需要创建新的list对象,从而需要消耗额外的内存,特别是当list较大时,尽量不要使用“+”来添加list,而应该尽可能使用List的append()方法。

复制代码代码如下:

>>> list1
['a', 'x', 'b', 'c', 'd']
>>> list2=['y','z']
>>> list3=list1+list2
>>> list3
['a', 'x', 'b', 'c', 'd', 'y', 'z']

阅读全文

与python的list操作相关的资料

热点内容
pythonmap使用方法 浏览:780
旅行世界app叫什么 浏览:919
加密篦子怎么制造视频 浏览:903
电脑主服务器未运行怎么解决 浏览:328
js超级玛丽源码 浏览:308
云镜下载什么格式app 浏览:765
iosAndroidjava 浏览:402
外卖员转型做程序员 浏览:927
看房用什么app准 浏览:157
鸡蛋解压玩具测评 浏览:705
阿里云发布arm服务器芯片 浏览:756
对加密货币平台的态度 浏览:373
刺客信条pdf 浏览:453
湛江头条程序员 浏览:162
装上加密狗就死机 浏览:927
windows程序员转linux 浏览:570
androidusb驱动xp 浏览:947
单片机的数字电压表设计 浏览:792
成功连接服务器是什么意思 浏览:892
如何审定服务器访问权限 浏览:687