Python基礎2 字符串、列表、字典、集合等操作
阿新 • • 發佈:2017-07-14
list 其他 查看 拼接 rep 之前 反轉 轉換成 title
列表、元祖操作
列表
語法:
name = [‘jack‘, ‘tom‘, ‘bob‘]
列表切片
列表切片的特點是“顧頭不顧尾”
>>> name = [‘jack‘, ‘tom‘, ‘bob‘] >>> name[:] [‘jack‘, ‘tom‘, ‘bob‘] >>> name[1:] [‘tom‘, ‘bob‘] >>> name[1:2] [‘tom‘] >>> name[:-1] [‘jack‘, ‘tom‘] >>> name[::2] [‘jack‘, ‘bob‘] >>> name[0::2] [‘jack‘, ‘bob‘] >>> name[1::2] [‘tom‘]
追加
>>> name [‘jack‘, ‘tom‘, ‘bob‘] >>> name.append(‘ann‘) >>> name [‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
插入
>>> name [‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘] >>> name.insert(0, ‘alex‘) >>> name [‘alex‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
修改
>>> name [‘alex‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘] >>> name[0] = ‘xiaoming‘ >>> name [‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘]
刪除
# pop刪除,以索引刪,默認不填寫索引刪除列表最後一個元素 >>> name [‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘, ‘ann‘] >>> name.pop()‘ann‘ >>> name [‘xiaoming‘, ‘jack‘, ‘tom‘, ‘bob‘] >>> name.pop(-1) ‘bob‘ >>> name.pop(0) ‘xiaoming‘ >>> name [‘jack‘, ‘tom‘] # remove刪除,以字符串刪 >>> name.remove(‘tom‘) >>> name [‘jack‘] # del刪除 >>> name [‘jack‘] >>> del name[0] >>> name []
擴展
>>> l1 = [1,2,3] >>> l2 = [4,5] >>> l1.extend(l2) >>> l1 [1, 2, 3, 4, 5]
拷貝
>>> l2 = l1.copy() >>> l2 [1, 2, 3, 4, 5]
統計
>>> l1 [1, 2, 3, 4, 5] >>> l1.count(1) 1
排序和反轉
# 排序,Python3中不同數據類型不能一起排序 >>> l = [3,2,1,4,7,0] >>> l.sort() >>> l [0, 1, 2, 3, 4, 7] # 反轉 >>> l [0, 1, 2, 3, 4, 7] >>> l.reverse() >>> l [7, 4, 3, 2, 1, 0]
獲取索引
>>> l [7, 4, 3, 2, 1, 0] >>> l.index(3) 2
元祖
元祖又稱為可讀的列表,一但創建不能修改,它只有2個方法,一個是count,一個是index
語法:
name = (‘jack‘, ‘tom‘)
字符串操作
特性不可修改
print(name.capitalize()) # 首字母大寫 print(name.count("a")) # 計算某個字符在字符串中出現的次數 print(name.center(50, "-")) # 居中打印 print(name.encode(‘utf-8‘)) # 字符串轉換成bytes類型 print(name.endswith("en")) # 判斷字符串以什麽結尾 print(name.expandtabs()) # 將tab轉多少個空格 print(name.find(‘c‘)) # 從左側查找索引 print(name.rfind(‘c‘)) # 從右側查找索引 print("abc123".isalnum()) # 是否為數字和字母 print("abc".isalpha()) # 是否為數字 print("1".isdecimal()) # 是否為十進制 print("123".isdigit()) # 是否為整數 print("12a".isidentifier()) # 是否為合法的變量名 print("abc".islower()) # 是否為小寫 print("abc".isupper()) # 是否為大寫 print("123".isnumeric()) # 是否只有數字 print(" ".isspace()) # 是否為空格 print("My Name Is".istitle()) # 是否每個首字母都大寫 print("My Name Is".isprintable()) # 是否能打印 print("+".join("abc")) # 拼接字符串 print(name.ljust(50, "*")) # 長度不到50,後面用*號補齊 print(name.rjust(50, "*")) # 長度不到50,前面用*號補齊 print("ALEX".lower()) # 變小寫 print("alex".upper()) # 變大寫 print(" jack ".lstrip()) # 去掉開頭空格 print(" jack ".rstrip()) # 去掉結尾空格 print(" jack ".strip()) # 去掉開頭和結尾空格 print("jaaaiachen".replace("a", "x", 1)) # 字符串替換 print("abcde".split("a")) # 分割成列表 print("1+2\n+3+4".splitlines()) # 以換行符分割成列表 print("Jack".swapcase()) # 反轉大小寫 print("abc".title()) # 變成一個title print("abc".zfill(50)) # 不夠前面補零
字典操作
字典一種key - value 的數據類型,使用就像我們上學用的字典,通過筆劃、字母來查對應頁的詳細內容。
語法:
d = { ‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, }
字典的特性:
dict是無序的
key必須是唯一的,so 天生去重
增加
>>> d = {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} >>> d[‘k3‘] = ‘v3‘ >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
修改
>>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} >>> d[‘k1‘] = ‘v11111‘ >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘}
刪除
# pop刪除 >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} >>> d.pop(‘k3‘) ‘v3‘ >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} # del刪除 >>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} >>> del d[‘k3‘] >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} # 隨機刪除 >>> d {‘k2‘: ‘v2‘, ‘k1‘: ‘v11111‘} >>> d.popitem() (‘k2‘, ‘v2‘) >>> d {‘k1‘: ‘v11111‘}
查找
>>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} # 查看k1是否在字典d中,存在為True,不存在為False >>> ‘k1‘ in d True # get方式取k1如果有則取到值,沒有則設置為None >>> d.get(‘k1‘, None) ‘v1‘ >>> d.get(‘xxx‘, None) # 直接取值,k1不存在則報錯 >>> d[‘k1‘] ‘v1‘
其他
>>> d {‘k3‘: ‘v3‘, ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘} >>> d.keys() dict_keys([‘k3‘, ‘k2‘, ‘k1‘]) >>> d.values() dict_values([‘v3‘, ‘v2‘, ‘v1‘]) >>> d.items() dict_items([(‘k3‘, ‘v3‘), (‘k2‘, ‘v2‘), (‘k1‘, ‘v1‘)]) # 循環字典方式1 for k in d: print(k, d[k]) # 循環字典方式2 for k, v in d.items(): print(k, v) # 方式1好於方式2,原因一目了然,上面的d.items()是將字典先轉換為列表,這樣如果字典較大的話,會很慢
集合操作
集合是一個無序的,不重復的數據組合,它的主要作用如下:
去重,把一個列表變成集合,就自動去重了
關系測試,測試兩組數據之前的交集、差集、並集等關系
list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) print (list_1,list_2) ‘‘‘ #求交集 print (list_1.intersection(list_2)) #求並集 print (list_1.union(list_2)) #求差集,1裏面有2裏面沒有 print (list_1.difference(list_2)) #求子集,1是2的子集 print (list_1.issubset(list_2)) #求父集,1是2的父集 print (list_1.issuperset(list_2)) #求對稱差集,兩個互相沒有的,去掉重復的 print (list_1.symmetric_difference(list_2)) #判斷是否有交集,有為false,無為true print (list_1.isdisjoint(list_2)) ‘‘‘ #交集 print (list_1 & list_2) #並集 print (list_1 | list_2) #差集 print (list_1 - list_2) #對稱差集 print (list_1 ^ list_2) #添加 list_1.add(999) list_1.update([222,223,224]) #刪除 list_1.remove(999) #不存在報錯 list_1.discard(888) #不存在不報錯 #長度 len(list_1) #測試x是否是a的成員 999 in list_1 #測試x是否不是a的成員 999 not in list_1
Python基礎2 字符串、列表、字典、集合等操作