TQC-第六大類-串列List

這篇部落格用輕鬆有趣的方式介紹如何在Python中處理串列和二維矩陣。無論是計算牌點數、找出眾數、還是生成並處理二維矩陣,文章提供了多種寫法範例,讓你輕鬆掌握Python技巧。夠具體,還不算太難,看完人人都是編程小高手!

串列概要

以下大方向請先熟悉:

串列創建

1
lst=[]

串列新增

1
lst.append(物件)

串列方法

串列中某數出現的次數

1
串列.count(某數或某字)

串列某數出現的位置

1
串列.index(某數或某字)

Python內建函數

加總

1
sum(物件)

最大值

1
max(物件)

最小值

1
min(物件)

602

寫法一:用串列加判斷卡牌

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cards=[]
for _ in range(5):
n=input()
if n=='J':
cards.append(11)
elif n=='Q':
cards.append(12)
elif n=='K':
cards.append(13)
elif n=='A':
cards.append(1)
else:
cards.append(int(n))
print(sum(cards))

寫法二:利用字典(第七類內容),簡化可讀性

1
2
3
4
5
6
7
8
9
10
11
mapping = {'J': 11, 'Q': 12, 'K': 13, 'A': 1}
cards = []

for _ in range(5):
n = input()
if n in mapping:
cards.append(mapping[n])
else:
cards.append(int(n))

print(sum(cards))

604眾數

大家最討厭的郭橐駝

寫法一:計算陣列每一格的次數,詳細請參見instgram個人頁

1
2
3
4
5
6
7
8
9
10
11
12
13
nums=[]
for _ in range(10):
nums.append(int(input()))

mode=0
mode_num=0
for num in nums:
if nums.count(num)>mode:
mode=nums.count(num)
mode_num=num

print(mode_num)
print(mode)

寫法二:使用Counter這個容器

使用Counter中的功能most_common(1) ,意思為出現最多次的數字

1
2
3
4
5
6
7
8
from collections import Counter
nums=[]
for _ in range(10):
nums.append(int(input()))
nums=Counter(nums)

print(nums.most_common(1)[0][0])
print(nums.most_common(1)[0][1])

606二維矩陣輸出

建議搭配410畫星星一起使用就好

1
2
3
4
5
6
7
8
def compute():
...
n=int(input())
m=int(input())
for i in range(n):
for j in range(0-i,m-i):
print(f'{j:4}',end='')
print()

若真正要符合題意,可練習創造二維串列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def compute(rows,cols):
a=[[0]*cols for _ in range(rows)]
for i in range(rows):
for j in range(cols):
a[i][j]=j-i
return a

rows=eval(input())
cols=eval(input())

a=compute(rows, cols)
for rows in a:
for val in rows:
print(f'{val:4}',end='')
print()

608 二維串列的索引

把二維看成一維,詳情可看個人頁

1
2
3
4
5
6
7
8
9
lst=[]
for _ in range(9):
lst.append(int(input()))
mx=max(lst)
mn=min(lst)
li=lst.index(mx)
si=lst.index(mn)
print(f'Index of the largest number {mx} is: ({li//3}, {li%3})')
print(f'Index of the smallest number {mn} is: ({si//3}, {si%3})')

610

看你喜歡把訊息寫成print 或是寫在input 裡面

1
2
3
4
5
6
7
8
9
10
11
t = []
for i in range(4):
print(f"Week {i+1}:")
for j in range(3):
print(f"Day {j+1}:",end="")
t.append(eval(input()))
avg=sum(t)/len(t)
print(f"Average: {avg:.2f}")
print(f"Highest: {max(t)}")
print(f"Lowest: {min(t)}")

1
2
3
4
5
6
7
8
9
10
11
12
lst=[]
for i in range(1,5):
print(f'Week {i}:')
for j in range(1,4):
lst.append(eval(input(f'Day {j}:')))
avg=sum(lst)/len(lst)
mx=max(lst)
mn=min(lst)
print(f'Average: {avg:.2f}')
print(f'Highest: {mx}')
print(f'Lowest: {mn}')


TQC-第六大類-串列List
https://codinglu.tw/2025/05/tqc-category-6-list-python-tqc-certification/
作者
阿盧
發布於
2025年5月6日
許可協議
📌 本文瀏覽量: 0