reverse,反轉。python
v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1)
sort,排序算法
v1 = [11,22,3111,32,13] print(v1) # v1.sort(reverse=False) # 從小到大(默認) # v1.sort(reverse=True) # 從大到小 # print(v1)
keys/values/itemsapp
getcode
info = {'k1':'v1','k2':'v2'} # v1 = info['k11111'] # v2 = info.get('k1111') # None就是Python中的空 # v3 = info.get('k1111',666) # print(v2) # None數據類型,改類型表示空(無任何功能,專門用於提供空值)
pop排序
info = {'k1':'v1','k2':'v2'} result = info.pop('k2') print(info,result) del info['k1']
update索引
info = {'k1':'v1','k2':'v2'} # 不存在,則添加/存在,則更新 info.update({'k3':'v3','k4':'v4','k2':666}) print(info)
str內存
v = "Python全棧21期" if "全棧" in v: print('含敏感字符')
list/tuple字符串
v = ['alex','oldboy','藏老四','利奇航'] if "利奇航" in v: print('含敏感')
dictget
v = {'k1':'v1','k2':'v2','k3':'v3'} # 默認按照鍵判斷,即:判斷x是不是字典的鍵。 if 'x' in v: pass # 請判斷:k1 是否在其中? if 'k1' in v: pass # 請判斷:v2 是否在其中? # 方式一:循環判斷 flag = '不存在' for v in v.values(): if v == 'v2': flag = '存在' print(flag) # 方式二: if 'v2' in list(v.values()): # 強制轉換成列表 ['v1','v2','v3'] pass # 請判斷:k2:v2 是否在其中? value = v.get('k2') if value == 'v2': print('存在') else: print('不存在')
練習題input
# 讓用戶輸入任意字符串,而後判斷此字符串是否包含指定的敏感字符。 char_list = ['利奇航','堂有光','炸展會'] content = input('請輸入內容:') # 我叫利奇航 / 我是堂有光 / 我要炸展會 success = True for v in char_list: if v in content: success = False break if success: print(content) else: print('包含銘感字符') # 示例: # 1. 昨天課上最後一題 # 2. 判斷 ‘v2’ 是否在字典的value中 v = {'k1':'v1','k2':'v2','k3':'v3'} 【循環判斷】 # 3. 敏感字
注意點:
可設置一個標籤來判斷狀態
char_list = ['利奇航','堂有光','炸展會'] content = input('請輸入內容:') success = True # 標籤判斷狀態 for v in char_list: if v in content: success = False break if success: print(content) else: print('包含銘感字符')
特色
空集合的建立
v = {1,2,3,4,5,6,99,100} # 疑問:v = {} """ None int v1 = 123 v1 = int() --> 0 bool v2 = True/False v2 = bool() -> False str v3 = "" v3 = str() list v4 = [] v4 = list() tuple v5 = () v5 = tuple() dict v6 = {} v6 = dict() set v7 = set() """
集合獨有功能
add 添加
# v = {1,2} # v.add('Lishaoqi') # v.add('Lishaoqi') # print(v)
discard 刪除
# v = {1,2,'李邵奇'} # v.discard('李邵奇') # print(v)
update 批量添加
# v = {1,2,'李邵奇'} # v.update({11,22,33}) # print(v)
intersection 交集
# v = {1,2,'李邵奇'} # result = v.intersection({1,'李邵奇','小黑'}) # print(result)
union 並集
# v = {1,2,'李邵奇'} # result = v.union({1,'李邵奇','小黑'}) # print(result)
difference 差集
# v = {1,2,'李邵奇'} # result = v.difference({1,'李邵奇','小黑'}) # v中有且{1,'李邵奇','小黑'}沒有 # print(result) # v1 = {1,'李邵奇','小黑'} # result1 = v1.difference({1,2,'李邵奇'}) # print(result1)
symmetric_difference 對稱差集
# v = {1,2,'李邵奇'} # result = v.symmetric_difference({1,'李邵奇','小黑'}) # print(result)
注意:交集、並集和差集括號內傳入參數時,能夠一樣是集合,也能夠是列表和元組
公共功能
len
v = {1,2,'李邵奇'} print(len(v))
for循環
v = {1,2,'李邵奇'} for item in v: print(item)
索引【無】
步長【無】
切片【無】
刪除【無】
修改【無】
嵌套問題
列表/字典/集合:不能放在集合中,也不能做爲字典的key(unhashable)
# 1. 列表/字典/集合 -> 不能放在集合中+不能做爲字典的key(unhashable) # info = {1, 2, 3, 4, True, "國風", None, (1, 2, 3)} # print(info) # 2. hash -> 哈希是怎麼回事? # 由於在內部會將值進行哈希算法並獲得一個數值(對應內存地址),之後用於快速查找。 # 3. 特殊狀況 # info = {0, 2, 3, 4, False, "國風", None, (1, 2, 3)} # print(info) # 此時不打印False # info = { # 1:'alex', # True:'oldboy' # } # 此時沒有key爲True的鍵,而是'oldboy'將'alex'覆蓋 # print(info)
示例一
v1 = [11,22,33] v2 = [11,22,33] v1 = 666 v2 = 666 v1 = "asdf" v2 = "asdf" # 按理 v1 和 v2 應該是不一樣的內存地址。特殊: 1. 整型: -5 ~ 256 2. 字符串:"alex",'asfasd asdf asdf d_asdf ' ----"f_*" * 3 - 從新開闢內存。
# 按理 v1 和 v2 應該是不一樣的內存地址。特殊: 1. 整型: -5 ~ 256 2. 字符串:"alex",'asfasd asdf asdf d_asdf ' ----"f_*" * 3 - 從新開闢內存。
示例二:
v1 = [11,22,33,44] v1 = [11,22,33]
示例三:
v1 = [11,22,33] v2 = v1 # 練習1 (內部修改) v1 = [11,22,33] v2 = v1 v1.append(666) print(v2) # 含 666 # 練習2:(從新賦值) v1 = [11,22,33] v2 = v1 v1 = [1,2,3,4] print(v2) # 練習3:(從新賦值) v1 = 'alex' v2 = v1 v1 = 'oldboy' print(v2)
示例四
v = [1,2,3] values = [11,22,v] # 練習1: """ v.append(9) print(values) # [11,22,[1,2,3,9]] """ # 練習2: """ values[2].append(999) print(v) # [1, 2, 3, 999] """ # 練習3: """ v = 999 print(values) # [11, 22, [1, 2, 3]] """ # 練習4: values[2] = 666 print(v) # [1, 2, 3]
示例五
v1 = [1,2] v2 = [2,3] v3 = [11,22,v1,v2,v1]
查看內存地址
""" v1 = [1,2,3] v2 = v1 v1.append(999) print(v1,v2) print(id(v1),id(v2)) """ """ v1 = [1,2,3] v2 = v1 print(id(v1),id(v2)) v1 = 999 print(id(v1),id(v2)) """
問題: == 和 is有什麼區別?
v1 = [1, 2, 3, 4] v2 = [1, 2, 3, 5, 6] v1 == v2 ----> False v1 is v2 ----> False v1 = [1, 2] v2 = [1, 2] v1 == v2 ----> True v1 is v2 ----> False v1 = [1, 2, 3] v2 = v1 v1 == v2 ----> True v1 is v2 ----> True