2014-11-08 112 views
0

我是一名Python初學者,剛剛學習如何編寫函數。我有一份權重和性別列表,並試圖根據性別標準將其分成兩個新列表。使用for循環,我已經成功至今:根據條件拆分列表(性別)

df = pd.read_csv('brainweight.csv') 
w = list(df['Weight']) 
s = list(df['Sex']) 

female_weight = [] 
male_weight = [] 

for sex, weight in zip (s, w): 
    if sex == 'f': 
     female_weight.append(weight) 
    else: 
     male_weight.append(weight) 

我應該如何修改這個for循環到一個函數,其中變量= M/F(性別)?

回答

0
df = pd.read_csv('brainweight.csv') 
w = list(df['Weight']) 
s = list(df['Sex']) 
def list_by_gender(): 
    females = [] 
    males = [] 
    for sex, weight in zip (s, w): 
     if sex == 'f': 
      females.append(weight) 
     else: 
      males.append(weight) 
    return males,females 

male_list,female_list=list_by_gender() 
+0

非常感謝!你介意解釋最後一行嗎?我注意到,male_list和female_list是事先沒有定義的東西。我寫了一些與你的函數非常相似的東西,但python並沒有給我正確的值...... – 2014-11-08 17:10:27

+0

在Python中,你不需要像** C **那樣的**變量聲明**,我們可以初始化許多變量在腳本中的任何位置都有一行,如'a,b,c = 1,2,3'。在最後一行,我分配了直接從函數返回的'male_list'和'female_list'值。這與編寫'a,b = 2,3'類似。 – 2014-11-08 17:17:50

+0

@NackSrismith,如果您覺得有用,請接受答案。 – 2014-11-08 17:23:31