Python 列表

Python 列表是一个任意类型对象的位置相关的游戏集合,它没有固定大小,可通过对偏移量进行赋值。

列表操作

len : 求长度

索引:

>>> a=[1,2,3]
>>> a
[1, 2, 3]
>>> a[0]
1
>>> a[0]=0                     #通过a[index] ,可改变列表对应索引号的值
>>> a
[0, 2, 3]
>>> a[3]=4                     #如果索引号不存在,则报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>>

切片:不改变原来列表,返回新的列表

>>> a 
[0, 2, 3]
>>> a[:]              # [:] 取整个索引
[0, 2, 3]
>>> a[1:3]            # 从索引1,到索引2 进行切片,包头不包尾,返回新的列表
[2, 3]
>>> a[1:]
[2, 3]
>>> a[0:]
[0, 2, 3]
>>> a[0:-1]
[0, 2]

列表的特定操作:

添加元素:改变原来列表

append() :往列表索引末尾,添加其他元素 ,添加的元素只占1个索引位置,改变原来列表

a = [1,2,3]
b = [4,5,6]
a.append(b)
[1,2,3,[4,5,6]]

extend(): 向列表尾部追加一个序列(iterble),将序列中的每个元素都追加进来

#extend() 
>>> a=[1,2,3]
>>> a
[1, 2, 3]
>>> a.extend([3,5,6])
>>> a
[1, 2, 3, 3, 5, 6]
>>> a.extend({'name':'lee','age':18})
>>> a
[1, 2, 3, 3, 5, 6, 'age', 'name']
>>> a.extend((7,8))
>>> a
[1, 2, 3, 3, 5, 6, 'age', 'name', 7, 8]

+:两个列表相加,如果不是列表会报错,不改变原来列表,生成1个新的列表

+=:相当于extend()

inser(index,object):往索引位置中添加值

区别:

  • append和insert ,+= 都会改变原来的列表,而+不改变原来列表的大小,只会生成新的列表
  • + 后面 必须为列表,其他可以为任意元素
>>> a=[1,2,3]
>>> a.append('abc')   #从末尾添加元素
>>> a
[1, 2, 3, 'abc']
>>> a+'456'                 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
>>> a+['456']
[1, 2, 3, 'abc', '456']

删除元素:改变原来列表

del(a) :删除整个列表

del(a[0]):删除 a 列表中的第一个元素,同pop(0)

pop(n):删除列表固定(索引)中的元素

remove(value):删除列表中的值

clear(): 删除列表中所有的值

列表其他方法:

sort():按照升序,对列表进行排序,只能对相同类型进行排序,如列表中全是 数字或字母

reverse():对列表进行翻转 ,列表中可以含有不同元素

>>> b=[1,2,3,4]

[4, 3, 2, 1]
>>> b.sort()      #对B进行升序排序
>>> b
[1, 2, 3, 4]
>>> b.reverse()   #对B进行翻转
>>> b

>>> c=[1,'b',4,'c']  
>>> c.reverse()    #对C进行翻转
>>> c
['c', 4, 'b', 1]

二者差别:sort()  要求列表中元素为同一类型,reverse()不需要,只是单纯翻转列表中元素的位置。

sort() 支持传1个key 作为指定参数来排序

a = [
	{'id':11},
	{'id':33},
	{'id':2}
]

a.sort(key=lambda a:a['id'])
print(a)

index(value):查找列表当中的元素,如果存在,则返回索引位置,不存在则报错

count(value):统计列表当中包含某一元素的个人

copy(): 复制列表

转载于:https://my.oschina.net/esdn/blog/883834

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值