1. 列表list 1.1 切片# 定義一個list。list = [1, 2, 3, 4, 5] 從左往右讀取字元(預設步長為 1 )。如:list[-2:-1] # 返回一個list數據類型,[6]list[2] # 返回一個int數據類型, 3 從右往左讀取字元串(預設步長為 1 )。如:li ...
1. 列表list
1.1 切片
# 定義一個list。
list = [1, 2, 3, 4, 5]
從左往右讀取字元(預設步長為 1 )。如:
list[-2:-1] # 返回一個list數據類型,[6]
list[2] # 返回一個int數據類型, 3
從右往左讀取字元串(預設步長為 1 )。如:
list[-1:-2] # 返回一個空list, []
list[-1:-2:-1] # 步長為 -1 ,[5]
1.2 內置list方法
如:a = "123"
list(a)
# 返回的是一個列表,參數可迭代對象。裡面輸出的內容保持傳入的可迭代對象的元素和順序。如果參數為空,則返回一個空列表。
1.3 xrange 和 range 的具體區別
1.3.1 xrange 的用法(僅在python2中使用):
xrange(開始, 結束, 步長)
xrange 它生成一個xrange對象。
1.3.2 比較
range:直接生成一個列表對象。 #(在python3中,range是生成一個range對象,支持切片)
xrange:生成一個xrange對象。操作數據大,每一次只返回單個元素,節省記憶體。
1.3.3 列表推導式的應用
1) 取出1-10的所有值的平方。
[x*x for x in range(10)] # 結果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2) 生成字元串。
['num %s' % i for i in range(10)]
# 結果:['num 0', 'num 1', 'num 2', 'num 3', 'num 4', 'num 5', 'num 6', 'num 7', 'num 8', 'num 9']
3)生成元組。
[(x,y) for x in range(2) for y in range(2)]
# 雙重迭代列表,在以元組的形式(x,y)組合,生成一個列表,結果是:[(0, 0), (0, 1), (1, 0), (1, 1)]
4)生成字典。
dict([(x,y) for x in range(4) for y in range(3)])
# 第一個列表的迭代作為字典的鍵,第二個列表的迭代作為字典的值。結果為:
{0: 2, 1: 2, 2: 2, 3: 2}
3. 集合set
集合沒有順序,故不能用切片和索引操作。
3.1 創建集合。
set() :可變的
frozenset():不可變的(不能執行添加,刪除等操作)
3.2 添加操作。如:
a = set("asd") # 結果:{'a', 'd', 's'}
add :
a.add("panisme") #按原始字元串傳入。結果:{'panisme', 's', 'd', 'a'}
update :
a.update("panisme") #將字元串分割傳入。
#結果:{'m', 'e', 'p', 'panisme', 's', 'n', 'boy', 'i', 'd', 'a'}
3.3 刪除
remove :
a.remove("panisme") # 結果:{'m', 'e', 'p', 's', 'n', 'boy', 'i', 'd', 'a'}
3.4 判斷成員關係
in :"a" in a # 判斷字元"a" 是否在集合 a 裡面,返回bool值。
not in
3.5 交集, 並集, 差集
交集 :&
並集 :|
差集 :-
3.6 set去重
去除列表內容元素重覆,如:
b = [1,23,4,5,2,2,1,2]
set(b) # 用集合去重,返回結果:{1, 2, 4, 5, 23}
list(set(b)) # 達到列表去重目的,得到列表:[1, 2, 4, 5, 23]
4. 字典
字典是無序的,它不能通過偏移來存取,只能通過鍵來存取。
組成字典的鍵必須是不可變的數據類型,比如數字,字元串,元組等。
4.1 創建字典
方法一:
{} ,如 a = {'name':'xiaoming', 'age':18}
方法二:
dict() , a = dict(name = 'xiaoming', age = 18)
4.2 添加內容
a['country'] = 'china'
4.3 修改內容
方法一:
a['name'] = 'xiaohong'
方法二:update 參數是一個字典的類型,會替換相同鍵的值。
a.update({'name':'xiaolan', 'age':22})
4.4 刪除 del, clear, pop
del a['name'] # 刪除某個鍵以及對應的值。
a.clear() # 刪除字典的全部元素。
a.pop('age') # 刪除某個鍵以及對應的值。
4.5 keys() : 返回的是列表,裡面包含的是字典的所有鍵。
4.6 values() : 返回的是列表,裡面包含的是字典的所有值。
4.7 items :生成一個字典的容器 [()]
4.8 get : 通過特定的鍵名來查找對應的值。
a.get('22', 'abc')
# 如果沒有找到鍵('22')所對應的值,可以在後面指定返回值('abc')
...