JPA(Java Persistence API)學習十二(多對多對映)
阿新 • • 發佈:2020-09-08
List
和String型別一樣可索引和分片,同時可修改資料。索引下標從0開始
lst = ['hello',1,1.0,False,'world']
print(lst)
['hello', 1, 1.0, False, 'world']
常用函式
名稱 | 說明 | 用法 |
---|---|---|
append | 在末尾新增新的元素 | list.append(4) |
clear | 清除列表中所有的資料 | list.clear() |
copy | 淺拷貝 | list.copy() |
count | 檢視元素在列表中出現的次數 | list.count(2) |
extend | 在末尾一次性追加另外一個列表中的多個值 | list.extend([1,2]) |
index | 從指定範圍的列表中指出某個值第一個匹配的下標索引;若不指定範圍,則預設是整個列表 | list.index(object[, start][, stop]) |
insert | 在下標處插入元素,不覆蓋原本資料。原資料向後順延 | list.insert(0,1) |
pop | 移除列表中指定下標處的元素(預設移除最後一個元素),並返回移除的資料 | list.pop() |
remove | 移除列表中的某個元素第一個匹配結果 | list.remove(2) |
reverse | 將列表中的元素倒序,操作原列表,不返回新的列表 | list.reverse() |
sort | 將list中的元素進行升序排列(預設reverse=False),當reverse為True時,為降序排列 | list.sort(reverse=False) |
列表可修改,有很多方法,如:
刪除元素: pop(有返回值),del(無法回值)
>>> a = [0,1,2,3,4] >>> del a[-1] #del刪除沒有返回值 >>> a [0, 1, 2, 3] >>> del a[1:3] #刪除index範圍 >>> a [0, 3] >>> del a #刪除整個變數 >>> a [] >>> a = [0,1,2,3,4] >>> a.pop() #不填寫index,則預設index為-1。有返回值 4 >>> b = a.pop(1) #刪除指定index >>> print(a) [0,2,3] >>> print(b) 1
如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用
del
語句;如果你要在刪除元素後還能繼續使用它,就使用pop
根據值刪除元素remove
>>> a = [1,2,3]
>>> a.remove(2)
>>> print(a)
[1,3]
拷貝
1、賦值拷貝/引用拷貝
>>> a = [1,2,3]
>>> b = a
>>> a.append(4)
>>> print(b)
[1,2,3,4]
指向同一個記憶體地址,類似快捷方式
2、淺拷貝
>>> a = [1,2,3,[4,5]]
>>> b = a.copy()
>>> a.append(9)
>>> print(a,b)
>>> print(id(a[3]),id(a))
>>> print(id(b[3]),id(b))
[1, 2, 3, [4, 5], 9] [1, 2, 3, [4, 5]]
139912453078920 139912453106184
139912453078920 139912453165192
>>> a[3].append(6)
>>> print(a,b)
[1, 2, 3, [4, 5, 6]] [1, 2, 3, [4, 5, 6]]
相當於
b = a[::]
注意: 只適用於一維列表
不完全記憶體拷貝,對於一維列表重新開闢了一塊記憶體空間,但若出現二維列表的情況下,因為二維列表存放在一維列表中存放的是列表地址,因此若出現二維列表相當於間接的引用了同一塊記憶體區域
3、深度拷貝
import copy
list1 = copy.deepcopy(list1)
>>> import copy
>>> a = [1,2,3,[4,5]]
>>> b = copy.deepcopy(a)
>>> a[3][1] = 6
>>> print(a,b)
[1, 2, 3, [4, 6]] [1, 2, 3, [4, 5]]
完全記憶體拷貝,相當於將list1中的所有列表中元素重新複製了一份,對於多維也重新開闢了記憶體空間,因此不會出現記憶體共用的情況