Python簡單易學,現今非常流行。Python被用于各種場景,如數據科學、機器學習、web開發、腳本編制、自動化等等。
Python的簡單易學性在數據科學非常重要。盡管一些數據科學家有計算機科學背景或了解其他編程語言,但仍有許多數據科學家來自各類專業,如統計學、數學或其他技術學科,當他們剛進入這個行業時,可能并沒有那么多編程知識。Python語法易于理解和編寫的優勢,使它成為一種流行于快速且易于學習的編程語言。
在本文中,云朵君將和大家一起學習40個可以幫助你加快數據處理效率的的方法和技巧,希望對你有所幫助。
01列表推導式
列表的元素可以在一行中循環遍歷。
numbers=[1,2,3,4,5,6,7,8]
even_numbers=[numberfornumberinnumbersifnumber%2==0]
print(even_numbers)
輸出
[1,3,5,7]
同樣可以使用字典、集合和生成器來完成推導式。
dictionary={'first_num':1,'second_num':2,
'third_num':3,'fourth_num':4}
oddvalues={key:valuefor(key,value)indictionary.items()ifvalue%2!=0}
print(oddvalues)Output:{'first_num':1,
'third_num':3}
02枚舉函數
Enumerate(枚舉)是一個很有用的函數,用于迭代對象,如列表、字典或文件。該函數生成一個元組,其中包括通過對象迭代獲得的值以及循環計數器(從0的起始位置)。當希望根據索引編寫代碼時,循環計數器就派上用場了。
來看一個示例,其中第一個和最后一個元素會被區別對待。
sentence='JustdoIt'
lenlength=len(sentence)
forindex,elementinenumerate(sentence):
print('{}:{}'.format(index,element))
ifindex==0:
print('Thefirstelement!')
elifindex==length-1:
print('Thelastelement!')
輸出
0:J
Thefirstelement!
1:u
2:s
3:t
4:
5:d
6:o
7:
8:I
9:t
Thelastelement!
也可以使用enumerate函數枚舉文件。在下面的示例中,在跳出循環之前打印CSV文件的前10行。并且可以在任何文件上使用該函數。
withopen('heart.csv')asf:
fori,lineinenumerate(f):
ifi==10:
break
print(line)
03通過函數返回多個值
在設計函數時,我們經常希望返回多個值。在這里介紹兩種典型的方法。
方法一
最簡單的是返回一個元組。這種方法通常只在有兩個或三個值要返回時使用。但當元組中有更多值時,很容易忘記項目的順序。
下面的代碼部分是一個示例函數,它根據學生的ID號將學生的名字和姓氏作為元組返回。
#返回元組
defget_student(id_num):
ifid_num==0:
return'君','云朵'
elifid_num==1:
return'猴子','小'
else:
raiseException('沒有學生的id是:{}'.format(id_num))
當我們使用數字0調用函數時,我們注意到它返回一個具有兩個值的元組:'Taha'和'Nate'。
Student=get_student(0)
print('名字:{},姓氏:{}'.format(Student[0],
Student[1]))
輸出
名字:君,姓氏:云朵
方法二
第二個選擇是返回字典。因為字典是鍵值對,我們可以對返回的值進行命名,這比元組更直觀。
方法二的實現方式和方法一一樣,只是返回一個字典。
#返回字典
defget_data(id_num):
ifid_num==0:
return{'first_name':'君',
'last_name':'云朵',
'title':'數據STUDIO',
'department':'A',
'date_joined':'20201001'}
elifid_num==1:
return{'first_name':'猴子',
'last_name':'小',
'title':'機器學習研習院',
'department':'B',
'date_joined':'20201019'}
else:
raiseException('沒有員工的id是:{}'.format(id_num))
當結果是字典時,通過鍵引用特定值會更容易。我們正在調用id_num=0的函數。
employee=get_data(0)
print('first_name:{},nlast_name:{},ntitle:{},ndepartment:{},ndate_joined:{}'.format(
employee['first_name'],employee['last_name'],
employee['title'],employee['department'],
employee['date_joined']))
輸出
first_name:君,
last_name:云朵,
title:數據STUDIO,
department:A,
date_joined:20201001
04像在數學中一樣比較多個數字
如果有一個值并希望將其與其他兩個值進行比較,可以使用以下基本數學表達式:1
這就是我們在小學學到的代數表達式。同樣的語句也可以在Python中使用。你應該用過如下的比較方式:
1<30
在Python中實現上述比較方式的另一種比較方法是:1
x=5
print(1
輸出
True
05將字符串轉換為字符串列表
假設將函數的輸入作為字符串,但它應該是這樣的列表:
輸入=[[1,2,3],[4,5,6]]
其實無需處理復雜的正則表達式,只需導入模塊'ast'并調用其函數literal_eval:
importast
defstring_to_list(string):
returnast.literal_eval(string)
string="[[1,2,3],[4,5,6]]"
my_list=string_to_list(string)
print(my_list)
輸出
[[1,2,3],[4,5,6]]
06For-Else方法
此方法用于在列表上應用循環。通常,當你想遍歷你應用的列表時,可以使用for循環。但是在這種方法中,你可以在循環中傳遞一個else條件,這種情況極為罕見。其他編程語言不支持這種方法。
看看它在一般情況下是如何工作的:如果要檢查列表中是否有偶數。
number_List=[1,3,7,9,8]
fornumberinnumber_List:
ifnumber%2==0:
print(number)
break
else:
print("Noevennumbers!!")
輸出
8
如果找到偶數,則將打印該數字,并且else部分將不會執行,因為我們傳遞了一個break語句。如果break語句從不執行,則else塊將執行。
07從列表中找到N個最大/小的元素
通過使用'heapq'模塊,你可以從列表中找到n-largest或n-smallest元素。
importheapq
numbers=[80,25,68,77,95,88,30,55,40,50]
print(heapq.nlargest(5,numbers))
print(heapq.nsmallest(5,numbers))
輸出
[95,88,80,77,68][25,30,40,50,55]
08函數參數以列表值傳遞
可以使用'*'訪問列表的所有元素。
defSummation(*arg):
sum=0
foriinarg:
sum+=i
returnsum
result=Summation(*[8,5,10,7])
print(result)
輸出
30
09重復整個字符串
只需將字符串乘以一個數字,即希望字符串重復的次數。
value="數據STUDIO"
print(value*3)
print("-"*31)
輸出
數據STUDIO數據STUDIO數據STUDIO
----------------------------
10從列表中找到元素的索引
使用".index"從列表中查找元素的索引。
cities=['Vienna','Amsterdam','Paris','Berlin']
print(cities.index('Berlin'))
以上內容為大家介紹了好用到起飛的Python技巧!,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/