目錄
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