我刚开始学习python一周前,我坚持这个练习。我必须阅读一份员工的csv文件,并有工资并返回一个列表,其中包含在选项卡中分割的行。该列表如下所示:
employees = [['ID','Title','Salary','Base'],
['453334','Professor','0.56','.40'],
['4353434','Tutor','0.66','0065'.....]]
我必须过滤清单,只保留那些教授的员工。我知道我需要打印那些第4列值=="教授"的项目。这就是我到目前为止所拥有的:
employees2 = []
def professor(x):
for line in x:
if x[?][4] == "Professor":
employee2.append(line)
return employee2
我只是不知道如何让它看到每一行,只有第4列输出一个列表只保留那些带有标题或教授的列。
答案 0 :(得分:1)
也许:
def professor(x):
employees2 = []
for line in x:
if line[1] == "Professor":
employees2.append(line)
return employees2
更短(更pythonic的方式)是:
employees2 = [line for line in employees if line[1] == "Professor"]
如果你必须做一个功能:
def professor(x):
return [line for line in x if line[1] == "Professor"]
或者(有人可能会对此大喊大叫):
professor = lambda x: [line for line in x if line[1] == "Professor"]