【发布时间】:2017-09-11 14:30:00
【问题描述】:
有人可以向我解释为什么这两个语句(for 循环和理解)会返回两个不同的答案。我认为它们是相同的,只是写声明的方式不同。
使用的数据:
Top152['% Renewable']
Country
China 19.754910
United States 11.570980
Japan 10.232820
United Kingdom 10.600470
Russian Federation 17.288680
Canada 61.945430
Germany 17.901530
India 14.969080
France 17.020280
South Korea 2.279353
Italy 33.667230
Spain 37.968590
Iran 5.707721
Australia 11.810810
Brazil 69.648030
for循环:
def answer_ten():
Top15 = answer_one()
Top152 = Top15.copy()
for x in Top152['% Renewable']:
if x >= Top152['% Renewable'].median():
Top152['HighRenew'] = 1
else:
Top152['HighRenew'] = 0
return Top152['HighRenew']
answer_ten()
输出:
Country
China 1
United States 1
Japan 1
United Kingdom 1
Russian Federation 1
Canada 1
Germany 1
India 1
France 1
South Korea 1
Italy 1
Spain 1
Iran 1
Australia 1
Brazil 1
理解:
def answer_ten():
Top15 = answer_one()
Top152 = Top15.copy()
Top152['HighRenew'] = [1 if x >= Top152['% Renewable'].median() else 0 for x in Top152['% Renewable']]
return Top152['HighRenew']
answer_ten()
输出:
Country
China 1
United States 0
Japan 0
United Kingdom 0
Russian Federation 1
Canada 1
Germany 1
India 0
France 1
South Korea 0
Italy 1
Spain 1
Iran 0
Australia 0
Brazil 1
【问题讨论】:
标签: python pandas numpy for-loop list-comprehension