我是 Python 的新手,我想問一個關于 for 回圈和變數子集的問題。事實證明,我正在處理來自官方民意調查的高維資料。然后,我有一個五年的面板資料,其中不同年份的變數可以通過最后兩位數字來識別。例如:“codpeople_16”屬于 2016 年。為了處理不同時間的觀察結果,我需要獲取占一年的所有變數的串列:例如,2016 年的變數。
然后,我有一個資料框中所有變數的串列。它看起來像這樣:
names = (a200_16, a201_16, a202_16..., a200_17, a201_17, a202_17..., a200_18...)
然后我定義了一個函式如下:
def itercolumn(names):
result = ""
final = []
for i in names:
result = i[-2:]
if result == "16":
print(i)
它可以作業并列印 2016 年的所有變數。但是,我需要一個 2016 年所有變數的串列。然后,我需要一個函式來回傳。我試過這個:
ddef itercolumn(names):
result = ""
final = []
for i in names:
result = i[-2:]
if result == "16":
final = i
return final
它只回傳第一個迭代字符,但我需要滿足條件的所有變數。那么,我該怎么做才能得到所有滿足條件的變數的串列呢?
問候
uj5u.com熱心網友回復:
只需替換return
為yield
.
def itercolumn(names):
for i in names:
result = i[-2:]
if result == "16":
yield i
print(list(itercolumn(names)))
或者
def itercolumn(names):
final = []
for i in names:
result = i[-2:]
if result == "16":
final.append(i)
return final
print(itercolumn(names))
或者你可以使用串列理解
result = [name for name in names if name[-2:] == '16']
uj5u.com熱心網友回復:
def itercolumn(names)
result = "":
final = []
for i in names:
result = i[-2:]
if result == "16":
final.append(i)
return final
將您的代碼更改為此。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/473838.html
下一篇:返回列表