Data Engineer|日商優必達株式會社股份有限公司台灣分公司

台北市松山區 經歷不拘 大學 電腦軟體服務業
我要應徵
學歷: 資訊管理相關、資訊工程相關,大學、碩士、博士
經歷: 軟體設計工程師 年資不拘
需加強技能-企業要求 點擊標籤,查看學習內容
LinuxPythonGoData ModelingPostgreSQLhadoopAWS軟體程式設計資料庫軟體應用英文
需加強技能-相關
AmazonSchema大數據data pipelineSecuritySoftware engineeringBusiness requirements資料探勘TroubleshootingStatistical Process ControlAccessComputer scienceARCHITECTUREGraphiteScalabilityProcess improvementCAN
符合度
?

履歷符合度:登入計算

適合度
?

性格適合度:登入計算

Python
Python是一種物件導向、直譯式電腦程式語言,也是一種功能強大而完善的通用型語言,已經具有十多年的發展歷史,成熟且穩定。這種語言具有非常簡捷而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的作業系統中執行。 雖然 Python 可能被粗略地分類為「指令碼語言」(script language),但實際上一些大規模軟體開發計劃例如 Zope、Mnet 及 BitTorrent,Google 也廣泛地使用它。 Python 的支援者較喜歡稱它為一種高階動態編程語言,原因是「指令碼語言」泛指僅作簡單編程任務的語言,如 shell script、JavaScript 等只能處理簡單任務的編程語言,並不能與 Python 相提並論。 此外,由於 Python 對於 C 和其他語言的良好支援,很多人還把 Python 作為一種「膠水語言」(glue language)使用。 使用 Python 將其他語言編寫的程式進行整合和封裝。 在 Google 內部的很多專案使用 C++ 編寫性能要求極高的部分,然後用Python呼叫相應的模組。
Hi~ 分享你的學習心得來幫助後輩或向前輩提問吧!
我要分享
我要提問

學習推薦

全部
影片
文章

不知如何開始嗎? 先進行技能挑戰吧~

技能挑戰:初級
目前等級:未達初級
2613 人已通過「初級」測驗,通過率83%,和求職精靈一起探索知識、增強能力!
我要挑戰

Learn Code With Mike品牌創辦人

10/27 00:11

Pandas DataFrame處理雙維度資料方法(2)
Q:如何新增Pandas DataFrame資料?
1.insert():在指定的欄位位置新增欄位資料,如下範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
df.insert(2, column="engilsh", value=[88, 72, 74, 98])
print("在第三欄的地方新增一個欄位資料")
print(df)
2.append():新增一筆或一列的資料,透過傳入字典來指定各欄位的值,並且會回傳一個新的Pandas DataFrame資料集,如下範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
new_df = df.append({
"name": "Henry",
"math": 60,
"chinese": 62
}, ignore_index=True)
print("新增一筆資料")
print(new_df)
3.concat():利用合併多個Pandas DataFrame的方式來新增資料,並且會回傳一個新的Pandas DataFrame資料集,如下範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df1 = pd.DataFrame(grades)
df2 = pd.DataFrame({
"name": ["Henry"],
"math": [60],
"chinese": [62]
})
new_df = pd.concat([df1, df2], ignore_index=True)
print("合併df來新增資料")
print(new_df)
Q:如何排序Pandas DataFrame資料?
1.sort_index():依照索引值來進行排序,並且會回傳一個新的Pandas DataFrame資料集,如下範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
df.index = ["s3", "s1", "s4", "s2"]
new_df = df.sort_index(ascending=True)
print("遞增排序")
print(new_df)
new_df = df.sort_index(ascending=False)
print("遞減排序")
print(new_df)
2.sort_values():依照欄位內容來進行排序,並且會回傳一個新的Pandas DataFrame資料集,下面範例以math欄位內容來進行排序:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
new_df = df.sort_values(["math"], ascending=True)
print("遞增排序")
print(new_df)
new_df = df.sort_values(["math"], ascending=False)
print("遞減排序")
print(new_df)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/11/python-pandas-dataframe-tutorial.html )網站觀看更多精彩內容。
  • Pandas
  • Data Analysis
  • Python
  • PYTHON資料分析
拍手 0 留言 0 觀看 0 收藏 0

Learn Code With Mike品牌創辦人

10/25 22:59

Pandas Series處理單維度資料方法(上)
Q:什麼是Pandas Series?
在隨手可得的數據時代,資料分析逐漸成為顯學,利用視覺化軟體或是分析處理工具,將蒐集的資料轉變為有用的資訊,來協助使用者進行決策。
Pandas套件則是其中一種常用的資料分析處理工具,它是基於Python程式語言來建立的,非常容易使用且強大,主要應用於單維度(Series)與二維度(DataFrame)的資料處理。
大家可以把Pandas套件想像成是Excel一樣,能夠將儲存的資料進行統計、搜尋或修改等操作,主要有兩種資料結構,分別是Series及DataFrame,本文就先帶大家來認識Series的基本觀念。
Pandas Series適用於處理單維度或單一欄位的資料,就像是Excel中的某一欄,左側為資料索引,右側為資料內容,不過Pandas Series自動產生的資料索引是從0開始計算,另外也有提供方法(Method),讓使用者可以自行定義。
Q:如何建立Pandas Series物件?
想要利Pandas Series來儲存單維度的資料,就需要先建立Pandas Series物件,語法如下:
my_series = pandas.Series(資料串列)
範例:
import pandas as pd
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
如果想要自訂資料索引,可以利用index關鍵字參數(Keyword Argument)來進行設定,如下範例:
import pandas as pd
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"], index=["p1", "p2", "p3", "p4"])
Q:如何取得Pandas Series資料?
可以利用資料順序或資料索引值來取得Pandas Series物件中的特定資料,如下範例:
import pandas as pd
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"], index=["p1", "p2", "p3", "p4"])
print(phone[1]) # 依據資料順序取值(從0開始計算)
print(phone["p3"]) # 依據資料索引值取值
Q:新增Pandas Series資料方法?
想要在既有的Pandas Series物件中新增資料,可以利用append()方法(Method)來達成,這邊要特別注意的是,append()方法(Method)需傳入Pandas Series物件,並且會額外產生一個新的Pandas Series物件,如下範例:
import pandas as pd
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
data = pd.Series(["Htc", "Oppo"]) # 新增的資料
combined = phone.append(data)
print(combined)
由於Pandas Series物件都會自動產生資料索引,所以從上面的執行結果可以看到,將兩個Pandas Series物件合併後,會發現資料索引沒有連續的問題,這時候可以在append()方法(Method)中加上「ignore_index = True」設定,來忽略資料索引,如下範例:
import pandas as pd
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
data = pd.Series(["Htc", "Oppo"]) # 新增的資料
combined = phone.append(data, ignore_index=True)
print(combined)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/10/python-pandas-series-tutorial.html )網站觀看更多精彩內容。
  • PYTHON資料分析
  • Python
  • Pandas
  • Data Analysis
拍手 0 留言 0 觀看 0 收藏 0

Learn Code With Mike品牌創辦人

10/25 23:27

Pandas Series處理單維度資料方法(下)
Q:如何修改Pandas Series資料?
要修改Pandas Series物件中的某一筆資料,可以利用資料索引值進行存取後,來修改其中的資料,如下範例:
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
phone[1] = "Oppo"
如果有自訂的資料索引值,同樣可以依據資料索引值來進行修改,如下範例:
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"], index=["p1", "p2", "p3", "p4"])
phone["p3"] = "Oppo"
Q:如何取得Pandas Series資料筆數?
通常在做資料分析時,都會需要知道載入的資料筆數,這時候可以透過Pandas Series物件的size屬性(Attribute)來取得,如下範例:
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
print(phone.size) # 執行結果4
Q: Pandas Series字串運算方法有哪些?
在文章開頭有提到,Pandas套件就像Excel一樣,能夠對儲存的資料進行處理及操作,最常見的就是字串運算,這邊就擷取幾個Pandas Series物件常用的字串運算方法(Method),包含:
1.upper():將字串轉為大寫
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
print(phone.str.upper()) # 將字串資料轉換為大寫
2.lower():將字串轉為小寫
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
print(phone.str.lower()) # 將字串資料轉換為小寫
3.contains():搜尋是否包含特定字串
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
print(phone.str.contains("Sa")) # 搜尋是否包含特定字串
4.replace():取代為指定的字串
phone = pd.Series(["Apple", "Samsung", "Mi", "Sony"])
print(phone.str.replace("Samsung", "Oppo")) # 將Samsung取代為Oppo
Q: Pandas Series數值運算有哪些方法?
另一個Pandas套件最常應用的地方,就是數值的運算,這邊列舉幾個Pandas Series物件常用的數值運算方法(Method),包含:
1.max():最大值
numbers = pd.Series([22, 5, 10, 12, 6, 30])
print(numbers.max()) # 執行結果30
2.min():最小值
numbers = pd.Series([22, 5, 10, 12, 6, 30])
print(numbers.min()) #執行結果5
3.sum():總和
numbers = pd.Series([22, 5, 10, 12, 6, 30])
print(numbers.sum()) #執行結果85
4.mean():平均數
numbers = pd.Series([22, 5, 10, 12, 6, 30])
print(numbers.mean()) # 執行結果14.166666666666666
5.nlargetst():最大的n個數值
numbers = pd.Series([22, 5, 10, 12, 6, 30])
print(numbers.nlargest(2)) # 最大的2個數值
6.nsmallest():最小的n個數值
numbers = pd.Series([22, 5, 10, 12, 6, 30])
print(numbers.nsmallest(2)) # 最小的2個數值
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/10/python-pandas-series-tutorial.html )網站觀看更多精彩內容。
  • Python
  • PYTHON資料分析
  • Pandas
  • Data Analysis
拍手 0 留言 0 觀看 0 收藏 0

Learn Code With Mike品牌創辦人

10/26 23:51

Pandas DataFrame處理雙維度資料方法(1)
Q:什麼是Pandas DataFrame?
現在有許多的企業或商家,都會利用取得的使用者資料來進行分析,瞭解其中的趨勢或商機,由此可見,資料分析越來越受到重視,而這時候,能夠懂得使用資料分析工具就非常的重要。
在Pandas Series處理單維度資料方法文章中,分享了Pandas Series資料結構用於處理單維度資料集的實用方法,而本文則要來介紹Pandas套件的另一個非常重要的資料結構,也就是DataFrame。
DataFrame主要用來處理雙維度的資料,也就是具有列(row)與欄(column)的表格式資料集,所以經常應用於讀取CSV檔案、網頁表格或資料庫等,來進行其中的資料分析或處理
相較於Pandas Series處理單維度或單一欄位的資料,Pandas DataFrame則可以處理雙維度或多欄位的資料,就像是Excel的表格(Table),具有資料索引(列)及欄位標題(欄)。
Q:如何建立Pandas DataFrame?
想要使用Pandas DataFrame來儲存雙維度的資料,就要先建立Pandas DataFrame物件,語法如下:
my_dataframe = pandas.DataFrame(字典或陣列資料)
範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
print("使用字典來建立df:")
print(df)
grades = [
["Mike", 80, 63],
["Sherry", 75, 90],
["Cindy", 93, 85],
["John", 86, 70]
]
new_df = pd.DataFrame(grades)
print("使用陣列來建立df:")
print(new_df)
從執行結果可以看到,相同的資料內容,使用Python字典(Dictionary)來進行指定的話,鍵值(Key)就是Pandas DataFrame的欄位名稱,值(Value)則是該欄位的資料內容。而使用陣列來指定的話,就是單純的每一筆資料內容。
如果想要客製化Pandas DataFrame的資料索引及欄位名稱,可以分別利用index及columns屬性(Attribute)來達成,如下範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
df.index = ["s1", "s2", "s3", "s4"] #自訂索引值
df.columns = ["student_name", "math_score", "chinese_score"] #自訂欄位名稱
print(df)
Q:如何修改Pandas DataFrame資料?
利用Pandas DataFrame的at[]及iat[]取得所要修改的單一值後,來進行資料內容的修改,如下範例:
grades = {
"name": ["Mike", "Sherry", "Cindy", "John"],
"math": [80, 75, 93, 86],
"chinese": [63, 90, 85, 70]
}
df = pd.DataFrame(grades)
print("原來的df")
print(df)
df.at[1, "math"] = 100 #修改索引值為1的math欄位資料
df.iat[1, 0] = "Larry" #修改索引值為1的第一個欄位資料
print("修改後的df")
print(df)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/11/python-pandas-dataframe-tutorial.html )網站觀看更多精彩內容。
  • Data Analysis
  • PYTHON資料分析
  • Pandas
  • Python
拍手 0 留言 0 觀看 0 收藏 0

Learn Code With Mike品牌創辦人

10/25 22:47

Python Lambda Function應用技巧分享
Q: Python Lambda語法如何使用?
由於Lambda函式只有一行程式碼,所以在撰寫時有一些限制,我們來看一下它的語法:
lambda parameter_list: expression
這邊教大家一個技巧,在撰寫Lambda函式時,於Visual Studio Code輸入 lambda 關鍵字,接著按下 Tab 鍵,就會自動產生範例中的語法,包含了三個部分:
1.lambda關鍵字
2.parameter_list(參數清單)
3.expression(運算式)
其中,parameter_list(參數清單)也就是Lambda函式的傳入參數,可以有多個,以逗號分隔。而expression(運算式)則是針對傳入參數來進行運算,只能有一行運算式,不像一般函式(Function)可以有多行。接下來,我們透過幾個範例來了解如何使用Lambda函式吧。
範例1:
multiply = lambda x, y: x * y
print(multiply(4,2)) #執行結果8
範例2:
print((lambda x, y: x * y)(4, 2)) #執行結果8
Lambda函式支援IIFE語法,意思是利用 function expression 的方式來建立函式,並且立即執行它。
Q: Python Lambda函式的有哪些應用?
1. filter():在可疊代的物件中,依據條件運算式,選擇特定的元素,語法為:
filter(lambda parameter: expression, iterable)
範例:
numbers = [50,2,12,30,27,4]
result = filter(lambda x: x > 10, numbers)
print(list(result)) #執行結果[50,12,30,27]
2. map():在可疊代的物件中,套用特定運算式於每一個元素,語法為:
map(lambda parameter: expression, iterable)
範例:
numbers = [50,2,12,30,27,4]
result = map(lambda x: x * 2, numbers)
print(list(result)) #執行結果[100,4,24,60,54,8]
3. reduce():與map()內建方法同樣在可疊代的物件中,套用特定運算式於每一個元素,但是內部的實作方式不一樣,它的實作步驟為:
將可疊代物件中的前兩個元素先進行Lambda運算式的運算。
接著將第一個步驟的運算結果和可疊代物件中的下一個元素(第三個)傳入Lambda函式進行運算。
依此類推,直到可疊代物件的元素都運算完成。
也因為每一次的運算都是兩個元素傳入,所以語法為:
reduce(lambda parameter1, parameter2: expression, iterable)
範例:
from functools import reduce
numbers = [50,2,12,30,27,4]
result = reduce(lambda x, y: x + y, numbers)
print(result) #執行結果125
4. sorted():用來排序可疊代物件中的元素,語法為:
sorted(iterable, key=lambda parameter: expression)
範例:
cars = [
("mazda", 2000),
("toyota", 1000),
("benz", 5000),
]
print(sorted(cars, key=lambda car: car[1]))
#執行結果[('toyota', 1000),('mazda', 2000),('benz', 3000),]
Q: Lambda函式和一般函式(Function)有什麼不同?
這邊來比較一下Lambda函式與一般函式(Function)的差異為:
1.Lambda函式不需要定義名稱,而一般函式(Function)需定義名稱。
2.Lambda函式只能有一行運算式,而一般函式(Function)可以有多行運算式。
3.Lambda在每一次運算完會自動回傳結果,而一般函式(Function)如果要回傳結果要加上 return 關鍵字。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2019/12/python-lambda-functions.html )網站觀看更多精彩內容。
  • Python
拍手 0 留言 0 觀看 0 收藏 0

Learn Code With Mike品牌創辦人

10/23 12:43

Python Comprehension語法應用教學(下)
本文將延續「Python Comprehension語法應用教學(上)」,接續分享Python Comprehension語法的應用。
Q: Set & Dictionary Comprehension如何使用?
集合(Set)Comprehension的用法和串列(List)Comprehension幾乎一樣,不同的地方是集合(Set)使用 {} 符號,並且其中的元素不會重覆,如下範例:
titles = "Learn Code With Mike"
result = {letter for letter in titles if letter == "e"}
print(result) # 執行結果:{'e'}
從範例中可以看到 titles 中符合條件的 e 字母有3個,但是集合(Set)只會顯示1個。
另外,字典(Dictionary)Comprehension和集合(Set)Comprehension同樣使用 {} 符號,不同的是字典(Dictionary)的每個元素由鍵(Key)與值(Value)構成,如下範例:
titles = "Python"
result = {index: letter for index, letter in enumerate(titles)}
print(result) #執行結果{0: 'P', 1: 'y', 2: 't', 3: 'h', 4: 'o', 5: 'n'}
範例中利用enumerate()函式回傳可疊代的物件(Iterable Object)元組(Tuple),再透過Unpacking的方式取得鍵(index)與值(letter) 。
Q:Generator Expression如何使用?
各位一定會想說,那有元組(Tuple)Comprehension嗎?我們依照上面的原則來撰寫如下範例:
result = (number * 2 for number in range(10))
print(result) #執行結果<generator object <genexpr> at 0x006A2CD8>
從執行結果可以看到,我們得到了一個Generator物件(Object),這是什麼呢?
Generator物件(Object)具有延遲的特性,也就是說它不會把所有資料都儲存在記憶體中,而是透過迴圈進行讀取時,來產生值。所以Generator物件(Object)適用於處理非常龐大的資料集,甚至無限個資料的情況。如果透過串列(List)或元組(Tuple)等其它物件來處理時,會將所有資料都儲存在記憶體中,這時候就可以想像將會耗盡記憶體資源。
假設我們將上面範例中的 range(10) 調整為 range(20000),來模擬要處理的資料集非常龐大,接著引用sys模組中的getsizeof()函式(Function),來取得串列(List)及Generator物件(Oject)各佔用了多少記憶體空間,如下範例:
from sys import getsizeof
list_result = [number * 2 for number in range(20000)]
print("List: ", getsizeof(list_result)) #執行結果List: 89008
generator_result = (number * 2 for number in range(20000))
print("Generator: ", getsizeof(generator_result)) #執行結果Generator: 56
可以看到串列(List)占用了89008Bytes,而Generator物件(Object)只佔用了56Bytes,省下了不少記憶體空間。但是也需要特別注意,由於Generator物件(Object)不像其它物件如串列(List)等,把所有資料都儲存在記憶體中,所以是無法得知Generator物件(Object)的資料個數。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-comprehension.html )網站觀看更多精彩內容。
  • Python
拍手 0 留言 0 觀看 1 收藏 0

104求職精靈x聯成

聯成

10/07 00:00

  • Photoshop
  • HTML5
  • CSS
  • jQuery
  • AutoCAD
  • 3ds Max
  • Python
  • scikit-learn
  • OpenCV
  • Creo Parametric
  • Illustrator
  • After Effects
  • Premiere
  • Cinema 4D
  • C#
  • Unity3D
  • RHCE
  • Red Hat Certified Engineer
  • CCNA
  • OpenStack
觀看 82 收藏 0

104求職精靈x電腦技能基金會

電腦技能基金會 精選線上課程

02/01 00:00

  • 程式語言 (C/Python)
  • Python
  • 程式語言
  • Python程式設計
觀看 341 收藏 2

104求職精靈xHahow好學校

Hahow好學校 精選線上課程

09/29 11:56

  • SQL
  • Machine Learning
  • 人工智慧
  • 資料庫
  • Python
觀看 435 收藏 23

104求職精靈xCupoy

01/29 15:40

  • Python
  • Google Analytics
  • Weka
  • Flink
  • Firebase
  • 深度學習
  • Machine Learning
  • NLP
  • 演算法開發
  • R
觀看 134 收藏 12

104求職精靈x商業發展研究院

商業發展研究院 精選線上課程

08/13 00:00

  • Python
  • 演算法
  • 資料科學
觀看 61 收藏 7

Learn Code With Mike品牌創辦人

10/22 22:25

Python Comprehension語法應用教學(上)
Q:Python List Comprehension如何使用?
串列(List)Comprehension的語法包含三個部分,說明如下:
[expression for item in iterable]
1.expression:可以是 item 或運算式。
2.item:接收可疊代的物件(Iterable Object)元素。
3.iterable:可疊代的物件(Iterable Object)。
通常要建立一個串列(List),可以透過for迴圈的方式,如下範例:
numbers = []
for x in range(10):
numbers.append(x * 3)
如果透過串列(List)Comprehension來進行改寫的話,只需要一行即可達到相同的執行結果,如下範例:
numbers = [x * 3 for x in range(10)]
x * 3 就是串列(List)Comprehension中的運算式(expression),而 x 是接收可疊代的物件(Iterable Object)變數,最後就是可疊代的物件(Iterable Object) range(10) 。透過for迴圈的方式讀取元素值,並且乘以3來建立串列(List),語法是不是非常簡潔~
假設要在串列(List)Comprehension中利用條件判斷來篩選元素時,則可以使用下列語法:
[expression for item in iterable (if condition)]
延伸上面的範例,當 x 大於4的時候,我們才乘以3的動作,串列(List)Comprehension的寫法如下範例:
numbers = [x * 3 for x in range(10) if x > 4]
另外,串列(List)元素的運算及篩選可以利用Python的內建函式map()和filter()等,其中除了能夠透過Lambda函式來達成,串列(List)Comprehension語法同樣也可以實作。
Q:Python map()函式使用List Comprehension如何改寫?
map()函式可以將特定運算式套用至可疊代的物件(Iterable Object)元素,如下範例:
numbers = [50, 2, 12, 30, 27, 4]
result = list(map(lambda x: x * 2, numbers))
print(result) #執行結果:[100, 4, 24, 60, 54, 8]
map()函式利用Lambda函式來進行元素的運算,最後透過list()函式來轉型成串列(List)。而串列(List)Comprehension可以改寫成:
numbers = [50, 2, 12, 30, 27, 4]
result = [number * 2 for number in numbers]
print(result) #執行結果:[100, 4, 24, 60, 54, 8]
Q:Python filter()函式使用List Comprehension如何改寫?
filter()函式可以幫我們篩選可疊代的物件(Iterable Object)元素,如下範例:
numbers = [50, 2, 12, 30, 27, 4]
result = list(filter(lambda x: x > 10, numbers))
print(result) #執行結果:[50, 12, 30, 27]
在串列(List)Comprehension中則可以改寫為:
numbers = [50, 2, 12, 30, 27, 4]
result = [number for number in numbers if number > 10]
print(result) # 執行結果:[50, 12, 30, 27]
如果要依據條件來"改變"串列(List)中的值時,則要把條件判斷移至前方,如下範例:
numbers = [50, 2, 12, 30, 27, 4]
result = [number if number > 10 else 0 for number in numbers]
print(result) # 執行結果:[50, 0, 12, 30, 27, 0]
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-comprehension.html )網站觀看更多精彩內容。
  • Python
拍手 0 留言 0 觀看 1 收藏 0
工作機會

python工程師

迪倫蓮恩市場研究顧問有限公司

台北市信義區 經歷不拘 大學

時薪 300~400元

Python Web Developer

StreetVoice _街聲股份有限公司

台北市松山區 1年以上 大學

月薪 40,000~60,000元
我要應徵