--- tags: python --- # 02_串列(list)與字典(dict) ## 串列(list) * 一群資料的群組 * 具有順序性 ```python nums = [2, 4, 5, 8, 10] # 串列也可以儲存不同型別的資料 tw_building = [101, 'Taiwan'] print(type(tw_building)) # list # python的串列屬於0-based numbering,即索引值由0開始計算 print(nums[0]) # 2 print(nums[1]) # 4 # 倒數第一位數 print(nums[-1]) # 10 # 從索引值0取到索引值3 - 1的位置 print(nums[:3]) # [2, 4, 5] # 第三個參數代表間隔多少位 print(nums[::2]) # [2, 5, 10] # 整個串列倒著數 print(nums[::-1]) # [10, 8, 5, 4, 2] ``` ### 串列的方法 ```python nums = [2, 4, 5, 8, 10] nums[0] += 100 print(nums) # [102, 4, 5, 8, 10] nums[1] -= 2 print(nums) # [102, 2, 5, 8, 10] # 取得串列內資料數量 print(len(nums)) # 5 # 取得最大最小值 print(max(nums)) # 10 print(min(nums)) # 2 # 取得加總 print(sum(nums)) # 127 # 用in符號檢查資料是否再串列內 print(102 in nums) # True print(99 not in nums) # True # 用sort()函數重新排序 # 由小到大 nums.sort() print(nums) # [2, 5, 8, 10 ,102] # 由大到小 nums.reverse() print(nums) # [102, 10, 8, 5, 2] # 清空串列 nums = [] # 也可以用nums.clear() # 在串列最後補上新資料 nums.append(1) nums.append(2) nums.append(3) print(nums) # [1, 2, 3] # 在串列中補上一筆資料 nums.insert(1, 100) # 第一個參數為補上資料的索引位置 print(nums) # [1, 100, 2, 3] # 移除串列的最後一筆資料 nums.pop() print(nums) # [1, 100, 2] # 移除100的值 nums.remove(100) print(nums) # [1, 2] nums = [2,3,3,3,4,3,1,5,2] # 用count函數印出串列內資料出現的次數 print(nums.count(1)) # 1 print(nums.count(2)) # 2 print(nums.count(3)) # 4 ``` ### 建立To-do list ```python todo_list = ['todo1', 'todo2', 'todo3'] print('代辦事項都已完成:{}'.format(not todo_list) # False todo_list.pop(0) todo_list.pop(0) todo_list.pop(0) print('代辦事項都已完成:{}'.format(not todo_list) # True ``` ## 字典(dict) * 一群資料的群組 * 無順序性 * Key: Value的組合 ```python player1 = { 'name': 'Eric', 'level': '99', 'rank': '10', 'pvp': False, 'friends': [] } # 新增性別資料 player1['gender'] = 'male' # 更新pvp狀態 player1['pvp'] = True print(player1['pvp']) # True # 更新level的值 player['level'] += 1 print(player['level']) # 100 # 加好友 player1['friends'].append('player2') player1['friends'].append('player3') print(player['friends']) # ['player2', 'player3'] friends_len = len(player1['friends'])) # 2 print(f'{player1['name']}有{friends_len}個好友') # Eric有2個好友 # 取得字典內所有的Key keys = player1.keys() print(keys) # dict_keys(['name', 'level', 'rank', 'pvp', 'friends']) # 取得字典內所有的Value value = player1.values() print(value) # dict_values(['Eric', '99', '10', False, []]) # 用pop(key)來刪除字典的資料 player1.pop(rank) print(player1) # {'name': 'Eric', 'level': '99', 'pvp': False, 'friends': []} # 用clear()來清除字典 player1.clear() print(player1) # {} ``` > Written with [StackEdit](https://stackedit.io/). <!--stackedit_data: eyJoaXN0b3J5IjpbLTIwNzk4MThdfQ== -->