Python序列-列表对象创建/增加/删除

列表

       列表用于存储任一数目,任一类型的数据集合

       列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表定义标准格式a=[10,20,30,40]

       其中,10,20,30,40这些成为:列表a的元素

       列表中的元素可以不相同,可以任意类型。例如:a=[10,20.2,’abc’,’True’]

列表方法:增加元素、删除元素、访问元素、计数元素、统计元素等

注意:JAVA列表不可变

字符串和列表都是序列类型,一个字符串是一个字符序列,一个列表是任何元素的序列

列表对象的创建

基本语法[]创建

>>> a = [20,30,40,'abc']

>>> a[0]

20

>>> a = []   #创建一个空的列表对象

>>> a.append(20)

>>> a

[20]

>>>

List()创建

List()可以将任何可迭代的数据转换成列表

>>> a = list()  创建空列表对象

>>> a = list(range(10))

>>> a

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a = list("spy.txt")

>>> a

['s', 'p', 'y', '.', 't', 'x', 't']

>>>

Range创建整数列表

Range(start,end,step)

>>> list(range(10))

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> list(range(2,10,2))

[2, 4, 6, 8]

>>> list(range(2,-10,-2))

[2, 0, -2, -4, -6, -8]

>>>

推导式生成列表(重点for循环和if语句)

>>> a = [x*2 for x in range(5)]

>>> a

[0, 2, 4, 6, 8]

>>> a = [x*2 for x in range(100) if x%9 == 0]

>>> a

[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

>>>

列表元素的增加和删除

       当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担,但这个特点涉及列表元素的大量移动,效率极低。除非必要,我们一般只在列表尾部添加元素和删除元素,这会大大提高列表的操作效率

 

Append()

+运算符操作

并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素一次复制到新的列表对象中。这样,会涉及大量的复制操作,对操作大量元素不建议使用

Extend()

将目标列表的所有元素添加到本列表的尾部,原地址操作,不创建新的列表对象

Insert()

使用insert()方法可以将制定的元素插入到列表列表对象的任意制定位置。这样会让插入位置后面的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这样移动的函数还有:remove()/pop()/del(),他们在删除非尾部元素时也会发生操作位置后面元素的移动

>>> a=[20,40]

>>> a.append(50)

>>> a

[20, 40, 50]

>>> id(a)

2503763485896

>>> a = a+[60]

>>> a

[20, 40, 50, 60]

>>> id(a)

2503763485256

>>>

>>> a

[20, 40, 50, 60]

>>> id(a)

2503763485256

>>> a.extend([70,80])

>>> a

[20, 40, 50, 60, 70, 80]

>>> id(a)

2503763485256

>>>

>>> a.insert(2,55)

>>> a

[20, 40, 55, 50, 60, 70, 80]

>>> id(a)

2503763485256

>>>

乘法扩展

使用乘法扩展列表,生成一个新的列表,新列表元素是原列表元素的多次重复

>>> a='sxt'*3

>>> a

'sxtsxtsxt'

>>> a=[20,30]*3

>>> a

[20, 30, 20, 30, 20, 30]

>>>

列表元素的删除

删除的原理实质是数组元素的copy,

Dle删除

删除列表指定位置的元素

Pop删除

Pop()删除并返回指定位置的元素,未指定位置删除最后一个元素

Remove()方法

删除首次出现的指定元素,若不存在该元素抛出异常

>>> a = [10,20]

>>> del a[1]

>>> a

[10]

>>> del a

>>> a

>>> a = [10,20,30,40,50]

>>> a.pop()

50

>>> a

[10, 20, 30, 40]

>>> a.pop(1)

20

>>> a

[10, 30, 40]

>>>

>>> a = [10,20,30,20,20]

>>> a.remove(20)

>>> a

[10, 30, 20, 20]

>>> a.remove(100)

Traceback (most recent call last):

  File "<pyshell#14>", line 1, in <module>

    a.remove(100)

ValueError: list.remove(x): x not in list

>>>

>>> a = ['a','spy','b','spy','spy']

>>> a.remove('spy')

>>> a

['a', 'b', 'spy', 'spy']

>>> a.remove(20)

Traceback (most recent call last):

  File "<pyshell#18>", line 1, in <module>

    a.remove(20)

ValueError: list.remove(x): x not in list

>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值