Try   HackMD

02_串列(list)與字典(dict)

串列(list)

  • 一群資料的群組
  • 具有順序性
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] 

串列的方法

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

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的組合
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.