python3

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']
>>> 

共享笔记地址: http://note.youdao.com/noteshare?id=02dd58374c53d853c10a74afb5ecc8be

原文地址:https://www.cnblogs.com/adampei-bobo/p/6640581.html