# 1.公共操作 # del 刪除 刪除變數或指定容器內數據 變數,容器裡面的值 # + 將兩個相同類型序列進行連接 字元串,列表,元組 print('1.公共操作') print('a' + 'b') print(['a'] + ['b']) print(('a',)+('b',)) # 元組,要 ...
# 1.公共操作 # del 刪除 刪除變數或指定容器內數據 變數,容器裡面的值 # + 將兩個相同類型序列進行連接 字元串,列表,元組 print('1.公共操作') print('a' + 'b') print(['a'] + ['b']) print(('a',)+('b',)) # 元組,要有, # print({1:2}+{2:3}) # 字典不行,報錯 # * 複製 將裡面的數據線進行複製 字元串,列表,元組 # 語法糖 帶來便利的操作 print() print('-'*50) print([1, 2, 3]*3) print((1, 2)*2) # len 獲取序列長度 字元串、列表、元組、字典、集合 print() list1 = [1, 2, 3] print(len(list1)) print(list1.__len__()) set1 = {1, 2, 2} # 長度是2,因為去重 print(len(set1)) # reverse 倒置 將容器裡面的數據倒置 字元串、列表、元組、字典 # 因為集合中的數據沒有順序 print() list1 = [1, 2, 3] for i in list1: print(i) # 輸出123 for i in reversed(list1): print(i) # 輸出321 # max、min 求容器數據的最大致最小值 字元串、列表、元組、字典、集合 print() list1 = [1, 2, 3] print(max(list1)) print(min(list1)) str1 = 'adcba' print(max(str1)) # 根據ASCII輸出 # sum 求將容器的數據求和 列表、元組、字典、集合 print() list1 = [2, 3, 6] print(sum(list1)) tuple1 = (2, 3, 6) print(sum(tuple1)) set1 = {2, 3, 6} print(sum(set1)) # enumerate 索引映射 將索引映射給容器裡面的數據 列表、元組或字元串 print() list1 = ['a', 'b', 'c'] for i in enumerate(list1): print(i) for index, data in enumerate(list1): # 預設start=0 print(index, data) for index, data in enumerate(list1, start=1): # 索引從1開始 print(index, data) # 索引是1,2,3 # in not in 是否存在 判斷數據是否存在於容器內 字元串、列表、元組、字典、集合 print() list1 = [1, 2, 3] print(1 in list1) print(1 not in list1)
# 2.容器類型的轉換 # list tuple set print() print('2.容器類型的轉換') list1 = [1, 2, 3, 2] tuple1 = (1, 2, 3, 2) set1 = {1, 2, 3, 2} # 轉成集合會去重! print(set1) # 輸出123 因為去重2 print(tuple(list1)) print(list(set1)) # 因為集合去重了2,只剩下了123
# 3.列表推導式 # # 普通寫法 # list_data = [] # for i in range(10): # list_data.append(i) # print(list_data) # # 推導式寫法 # # 代碼簡潔,運行速度變快 # # 可讀性變差 # print([i for i in range(10)]) print() print('3.列表推導式') # 步驟: # 主體:for迴圈 # 類型:[] 表示列表 # 返回的數據:i print([i for i in range(10)])
# 4.列表推導式和if一起使用 print() print('4.列表推導式和if一起使用') # 普通寫法 list_data = [] for i in range(10): if i % 2 == 0: # 選擇0-9中的偶數 list_data.append(i) print(list_data) # 對應的推導式寫法 print([i for i in range(10) if i % 2 == 0])
# 5.字典推導式 print() print('5.字典推導式') dict_data = {} for i in range(10): dict_data[i] = i+1 # value是key加1 print(dict_data) # 對應的字典推導式 # 主體:for迴圈 # 類型:{} 表示字典 # 返回的數據:i:i+1 print({i: i+1 for i in range(10)})
# 6.字典推導式和if一起使用 print() print('6.字典推導式和if一起使用') dict_data = {'小明': 58, '小芳': 80, '小剛': 99, '小雨': 46} print({(i[0], i[1]) for i in dict_data.items() if i[1] < 60}) # 註意這裡if後面不能有: print([(i[0], i[1]) for i in dict_data.items() if i[1] < 60]) # 註意這裡if後面不能有:
# 7.集合推導式 print() print('7.集合推導式') print({i for i in range(10)}) # 這裡是i不是鍵值對 # 所以是集合不是字典
# 8.三元表達式 print() print('8.三元表達式') score = 40 if score > 60: print('合格') else: print('不合格') print('合格') if score > 60 else print('不合格') score = 50 if score > 60: res = 'True' else: res = 'False' print(res) res = 'True' if score > 60 else 'False' print(res)
# 9.列表推導式和三元表達式一起 # 判斷成績是否合格 print() print('9.列表推導式和三元表達式一起') dict_data = {} for i in range(58, 63): if i > 60: dict_data[i] = True else: dict_data[i] = False print(dict_data) print({i: True if i > 60 else False for i in range(58, 63)})
# 今日練習 # 請用列表推導式完成1到100所有奇數的和 print() print('今日練習') print(sum([i for i in range(1, 101) if i % 2 != 0]))