您的位置:首页 > 编程语言 > Python开发

python3 - list较全相关操作常用大概在这里

2017-03-29 16:52 393 查看
[TOC]

list
的拷贝

指向同一个内存地址操作同一个对象

>>> list1
[789, 555, 123, 123]
>>> list2 = list1
>>> list2
[789, 555, 123, 123]
>>> list1.pop()
123
>>> list1
[789, 555, 123]
>>> list1.pop()
123
>>> list1
[789, 555]
>>> list2
[789, 555]


真正的copy,通过
slice
切片的方式进行copy

>>> list2 = list1[:]
>>> list2
[789, 555]
>>> list1
[789, 555]
>>> list1.pop()
555
>>> list1
[789]
>>> list2
[789, 555]


指针指向同一个内存地址

>>> list1
[789, 555, 123, 123]
>>> list2 = list1
>>> list2
[789, 555, 123, 123]
>>> list1.pop()
123
>>> list1
[789, 555, 123]
>>> list1.pop()
123
>>> list1
[789, 555]
>>> list2
[789, 555]


sort

>>> list1
[123, 555, 789, 123]
>>> list1.sort()
>>> list1
[123, 123, 555, 789]
>>> list1.sort(reverse = True)
>>> list1
[789, 555, 123, 123]
>>>

reverse
逆转前后元素顺序倒过来

>>> list1
[123, 555, ['hello', 'world'], 789, 123]
# 删除元素
>>> list1.remove(list1[2])
>>> list1
[123, 555, 789, 123]
>>> list1.reverse()
>>> list1
[123, 789, 555, 123]


二层数组内部元素顺序不变

>>> list1
[123, 789, 555, 123]
>>> list1.insert(1, [123, 456])
>>> list1
[123, [123, 456], 789, 555, 123]
>>> list1.reverse()
>>> list1
[123, 555, 789, [123, 456], 123]
>>>


index

某个元素在list中第一次出现的位置

>>> list1
[123, 555, ['hello', 'world'], 789, 123]
>>> list1.index(123)
0


指定某个区间出现的位置

>>> list1
[123, 555, ['hello', 'world'], 789, 123]
>>> list1.index(789, 2, 4)
3


count

某个元素在list中出现的频率次数

[123, 555, ['hello', 'world'], 789, 123]
>>> list1.count(123)
2


in

情况1 只能是单层包含判断

>>> list1
[12, 34, 12, 34, 12, 34]
>>> 12 in list1
True
>>> 122 in list1
False


情况2 两层包含

>>> list1 = [123,555,["hello","world"],789]
>>> "hello" in list1
False
>>> "hello" in list1[2]
True
>>> 123 in list1
True


访问内部数组内元素

>>> list1[2][1]
'world'
>>>


列表与运算符

# 初始化list1
>>> list1
[12, 34]
# 此时并没有改变list1内容
>>> list1 * 3
[12, 34, 12, 34, 12, 34]
>>> list1
[12, 34]
# 已经改变list1内容
>>> list1 *= 3
>>> list1
[12, 34, 12, 34, 12, 34]

列表拼接
+
只能用来两个列表拼接

类似
extend
方法

>>> ls1
[3, 4, 5]
>>> ls2
[3, 4]
>>> ls3 = ls1 + ls2
>>> ls3
[3, 4, 5, 3, 4]
>>>


不能用
+
向其中添加元素

建议使用
append
,
extend
添加新元素

>>> ls3 + 'hel'
Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
ls3 + 'hel'
TypeError: can only concatenate list (not "str") to list
>>>


两个列表比较

比较从第一个元素开始,如果第一个大,那么那个列表就大

>>> ls1 = [1,2]
>>> ls2 = [3,4]
>>> ls1 > ls2
False


元素数量不同前面几位相等

>>> ls1
[3, 4, 5]
>>> ls2
[3, 4]
>>> ls1 > ls2
True
>>>


切片
slice

从开始位置到结束位置,不包含结束位置,并不会删除列表中的元素

从指定位置到指定位置

>>> member
['adfa', 'world', 'zhangsan', 'sichuan', 'file']
>>> member[1:3]
['world', 'zhangsan']
>>> member
['adfa', 'world', 'zhangsan', 'sichuan', 'file']
>>>


从开始到指定位置

>>> member
['adfa', 'world', 'zhangsan', 'sichuan', 'file']
>>> member[:2]
['adfa', 'world']
>>>


从指定位置到结束位置

>>> member
['adfa', 'world', 'zhangsan', 'sichuan', 'file']
>>> member[2:]
['zhangsan', 'sichuan', 'file']
>>>


添加到末尾

添加一个元素
append

>>> member = []
>>> member.append('adfa')
>>> member
['adfa']

添加多个元素
extend

添加多个元素内部参数是一个数组,是其他参数报错.

>>> member.extend(['hello','world'])
>>> member
['adfa', 'hello', 'world']


以上都是拼接到列表的末尾



添加到开始位置

insert

第一个参数要插入的位置,第二个要插入的内容对象,可以是一个单个元素,也可以是一个列表对象

>>> member.insert(1,['ni','shi'])
>>> member
['adfa', ['ni', 'shi'], 'hello', 'world']

删除元素

remove

>>> member
['adfa', ['ni', 'shi'], 'hello', 'world']
>>> member.remove('ni')
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
member.remove('ni')
ValueError: list.remove(x): x not in list
>>> member.remove(['ni','shi'])
>>> member
['adfa', 'hello', 'world']
>>>


del
语句

>>> member
['adfa', 'hello', 'world']
>>> del member[1]
>>> member
['adfa', 'world']
>>>


del
+
列表名(member)
把整个列表从内存中删除

pop()

剔除列表最后一个元素并返回,列表是栈结构

>>> member
['adfa', 'world']
>>> member.pop()
'world'
>>> member
['adfa']
>>>


剔除指定位置元素

>>> member
['adfa', 'helloo', 'world', 'zhangsan']
>>> member.pop(1)
'helloo'
>>> member
['adfa', 'world', 'zhangsan']
>>>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: