1. 列表的定義
列表是有序集合,沒有固定大小,能夠儲存任意數量任意型別的 python 物件,語法為 `[元素1, 元素2, ..., 元素n]`。
注意:由於list的元素可以是任何物件,因此列表中所儲存的是物件的指標。即使儲存乙個簡單的`[1,2,3]`,也有3個指標和3個整數物件。
`x = [a] * 4`操作中,只是建立4個指向list的引用,所以一旦`a`改變,`x`中4個`a`也會隨之改變。
x = [[0] * 3] * 4
print(x, type(x))
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
x[0][0] = 1
print(x, type(x))
# [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
a = [0] * 3
x = [a] * 4
print(x, type(x))
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
x[0][0] = 1
print(x, type(x))
# [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
x[0]==a
out[11]: true
x[0][0]==a[0]
out[12]: true
id(a)
out[13]: 2540456961416
id(x[0])
out[14]: 2540456961416
2.列表追加、刪除元素
x = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']
x.extend(['thursday', 'sunday'])
print(x)
# ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'thursday', 'sunday']
`list.remove(obj)` 移除列表中某個值的第乙個匹配項
`list.pop([index=-1])` 移除列表中的乙個元素(預設最後乙個元素),並且返回該元素的值
`remove` 和 `pop` 都可以刪除元素,前者是指定具體要刪除的元素,後者是指定乙個索引。
如果知道要刪除的元素在列表中的位置,可使用`del`語句。
x = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']
del x[0:2]
print(x) # ['wednesday', 'thursday', 'friday']
如果你要從列表中刪除乙個元素,且不再以任何方式使用它,就使用`del`語句;如果你要在刪除元素後還能繼續使用它,就使用方法`pop()`。
list1 = [123, 456, 789, 213]
list2 = list1
list3 = list1[:]#淺拷貝
print(list2) # [123, 456, 789, 213]
print(list3) # [123, 456, 789, 213]
list1.sort()
print(list2) # [123, 213, 456, 789]
print(list3) # [123, 456, 789, 213]
list1 = [[123, 456], [789, 213]]
list2 = list1
list3 = list1[:]
print(list2) # [[123, 456], [789, 213]]
print(list3) # [[123, 456], [789, 213]]
list1[0][0] = 111
print(list2) # [[111, 456], [789, 213]]
print(list3) # [[111, 456], [789, 213]]
4、其他
`list.reverse()` 反向列表中元素
list.sort(key=none, reverse=false)` 對原列表進行排序。
- `key` -- 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。
- `reverse` -- 排序規則,`reverse = true` 降序, `reverse = false` 公升序(預設)。
- 該方法沒有返回值,但是會對列表的物件進行排序。
2、元組
- 小括號把所有元素綁在一起
- 逗號將每個元素一一分開
## 1. 建立和訪問乙個元組
- python 的元組與列表類似,不同之處在於tuple被建立後就不能對其進行修改,類似字串。
- 元組使用小括號,列表使用方括號。
- 元組與列表類似,也用整數來對它進行索引 (indexing) 和切片 (slicing)。
week = ('monday', 'tuesday', 'thursday', 'friday')
week = week[:2] + ('wednesday',) + week[2:]
print(week) # ('monday', 'tuesday', 'wednesday', 'thursday', 'friday')
元組有不可更改 (immutable) 的性質,因此不能直接給元組的元素賦值,但是只要元組中的元素可更改 (mutable),那麼我們可以直接更改其元素,注意這跟賦值其元素不同。
解壓元組,如果你只想要元組其中幾個元素,用萬用字元「*」,英文叫 wildcard,在計算機語言中代表乙個或多個元素。下例就是把多個元素丟給了 `rest` 變數。
t = 1, 2, 3, 4, 5
a, b, *rest, c = t
print(a, b, c) # 1 2 5
print(rest) # [3, 4]
如果你根本不在乎 rest 變數,那麼就用萬用字元「*」加上下劃線「_」。
t = 1, 2, 3, 4, 5
a, b, *_ = t
print(a, b) # 1 2
Python之路 第一天入門
給大家推薦的書籍,中。首先,了解一下幾個入門 的文章 python初級教程 入門詳解 1.安裝部署 linux,以下是我敲過的命令 948 wget 949 tar xvf python 2.7.9.tgz 950 ll 951 cd python 2.7.9 952 configure prefi...
python入門的第一天
print hello,world 執行這段 hello,world 這段 也能這麼寫 print hello world 同樣的,執行結果也是 hello,world print中,有著連線多個字串的功能。print強大的地方就在於,哪怕你每個字元都加雙引號,列印出的語句也和上文語句相同,當然,這...
python入門第一天
一.程式語言分類 編譯型將 一次性全部編譯成二進位制,然後執行。優點 執行效率高 缺點 開發效率低,不能跨平台 代表語言 c語言 解釋型將 逐行解釋成二進位制,逐行執行 優點 開發效率低,可以跨平台 缺點 執行效率低 代表語言 python 二.python的種類 直譯器 pypy 動態編譯,提高p...