單行 for 迴圈 教學
Python

單行 for 迴圈 教學

最近收到一些同學私信問我,TQC+ 902 題目的解答程式碼是什麼意思?
List = [int(i) for i in data.split(‘ ‘)]

這是 for 迴圈的應用技巧之一
單行 for 迴圈
通常用來建置 List 清單的值

這次趁這個機會,我來簡單介紹一下「單行 for 迴圈」的用法。





一、單行 for 迴圈 語法

語法如下:
清單變數 = [迴圈變數 for 迴圈變數 in 資料來源 if 條件判斷式]

P.S. if 條件判斷式 可省略


TQC+ 902 題目為例:
read.txt 的內容為「11 22 33 22 33 44 33 44 55 44 55 66 55 66 77」
讀取後給變數 data,此時 data 的型態為字串 str

f = open("read.txt", 'r')
data = f.read()
f.close()

print(type(data))

接著要透過單行 for 迴圈,將這個字串裡的數字給清單變數 List。
套用語法:清單變數 = [迴圈變數 for 迴圈變數 in 資料來源]

變數 data 就是我們的資料來源,但首先我們要先把 data 用 split 函式做拆解,將它變成清單型態,如下:(為求方便,我直接將 data 設為字串。)

data = "11 22 33 22 33 44 33 44 55 44 55 66 55 66 77"

print("data.split() 的資料型態為:", type(data.split(' ')))
print(data.split(' '))

所以將 data.split(‘ ‘) 當作資料來源,清單變數取名為 List、迴圈變數取名為 i,如下:
List = [int(i) for i in data.split(‘ ‘)]

那麼因為最後要做數字加總,所以我們在第一個迴圈變數加上 int,讓它變成整數 int 型態,最後才可以用 sum 函式做加總。

data = "11 22 33 22 33 44 33 44 55 44 55 66 55 66 77"

List = [int(i) for i in data.split(' ')]
print(sum(List))

如果以上講解還是不太清楚的話,我下面做一些簡單的範例。


二、簡單範例

範例一:將數字 0 ~ 9 新增到變數 List

普通寫法:

List = []

for i in range(10):
	List.append(i)

print(List)

使用 單行 for 迴圈 寫法:

List = [i for i in range(10)]

print(List)

接著我們來搭配 if 條件判斷式

範例二:將數字 0 ~ 9 之間的偶數新增到變數 List

普通寫法:

List = []

for i in range(10):
	if i % 2 == 0:
		List.append(i)

print(List)

使用 單行 for 迴圈 寫法:

List = [i for i in range(10) if i % 2 == 0]

print(List)

妳看!使用 單行 for 迴圈 來撰寫是不是方便多了呢!?
那麼這次的教學就到這邊,若有看不懂的地方歡迎下方留言詢問~








如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝

可以多點幾次喔~~

第一次點讚需使用 Google 或 Facebook 帳號註冊

發表迴響