Chapter 6 再談資料類型

6-1 -1 串列(列表) list: 屬於集合的一種

#list列表 [ ]
# 範例6-1-1  列表 [ ]
fruits = ["apple","orange","banana","pear"]
print(fruits[0]) #apple
print(fruits[1]) #orange
for i in fruits:
print(i)
#加入元素  append
fruits = ["apple","orange","banana","pear"]
fruits.append("pineapple")
print(fruits) # ['apple', 'orange', 'banana', 'pear', 'pineapple']
#移除元素  remove
fruits = ["apple","orange","banana","pear","pineapple"]
fruits.remove("orange")
print(fruits) # ['apple', 'banana', 'pear', 'pineapple']
#找出元素位置  index
fruits = ["apple","orange","banana","pear","pineapple"]
print(fruits.index("banana")) # 2
# 可加入重複元素  append
fruits = ["apple","orange","banana","pear","pineapple"]
fruits.append("orange")
fruits.append("orange")
print(fruits) # ['apple', 'orange', 'banana', 'pear', 'pineapple', 'orange', 'orange']
# 統計同一元素個數 count
print(fruits.count("orange")) # 3

6-1-3 Case Study 個案研究 : 再次探討螺旋狀

# 範例6-1-2
import turtle as t
t.bgcolor("black")
color = ["red","yellow","blue","white","green","purple"]
t.speed(0)
for i in range(0,200,3):
t.pencolor(color[i%6])
t.fd(i)
t.lt(35)
t.done()

6-1-2 更多list指令

# 範例6-1-3 空集合[]
Arr = []
for i in range(3,25,3):
Arr.append(i)
print(Arr)
#執行結果
[3, 6, 9, 12, 15, 18, 21, 24]
# 範例6-1-4 呼叫亂數模組, 產生6個變數集合
# len():串列長度(元素個數)
# sum():元素總和 (請注意各元素是否為數字或字串)
# max():輸出串列中最大元素
# min():輸出串列中最小元素
import random
lotto_nums=[]
for i in range(6):
randnum=random.randint(1,49)
lotto_nums.append(randnum)
print("得獎號碼為:", lotto_nums)
print("得獎號碼共有:", len(lotto_nums),"個")
print("得獎號碼總和:", sum(lotto_nums))
print("得獎號碼最大:", max(lotto_nums))
print("得獎號碼最小:", min(lotto_nums))
# sort():串列按照由小到大排列
# reverse():反轉排列
lotto_nums.reverse()
print("得獎號碼順序反轉 :", lotto_nums)
lotto_nums.sort()
print("得獎號碼由小到大順序:", lotto_nums)
lotto_nums.reverse()
print("得獎號碼由大到小順序:", lotto_nums)
#執行結果可能為(產生的亂數不一定)
得獎號碼為: [28, 21, 25, 6, 25, 34]
得獎號碼共有: 6 個
得獎號碼總和: 139
得獎號碼最大: 34
得獎號碼最小: 6
得獎號碼順序反轉 : [34, 25, 6, 25, 21, 28]
得獎號碼由小到大順序: [6, 21, 25, 25, 28, 34]
得獎號碼由大到小順序: [34, 28, 25, 25, 21, 6]
# 範例6-1-6 擷取列表某一區間
arr=[1,10,20,30,40,50,60]
print('列表arr=', arr)
print('長度為:', len(arr))
print('第三個元素(位置2):', arr[2])
print('最後一個元素:', arr[-1])
# 區間以 a:b 擷取 a位置到(b-1)位置
print('第二至第五元素(位置1至位置4):', arr[1:5])
print('第三至倒數第三元素(位置2至位置-2前一個):', arr[2:-2])
#執行結果
列表arr= [1, 10, 20, 30, 40, 50, 60]
長度為: 7
第三個元素(位置2): 20
最後一個元素: 60
第二至第五元素(位置1至位置4): [10, 20, 30, 40]
第三至倒數第三元素(位置2至位置-2前一個): [20, 30, 40]

6-1-3 印出所有元素

# 範例6-1-7 以下可依序印出元素
arr=[10,20,30,40,50,60,70]
for i in range(len(arr)):
print('arr[%d] = %2d' %(i, arr[i]))
print()
#執行結果
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
arr[5] = 60
arr[6] = 70