美文网首页产品经理方法论@IT·互联网@产品
产品经理的 Python 自学之路(二)

产品经理的 Python 自学之路(二)

作者: TaraChen | 来源:发表于2017-04-25 15:44 被阅读295次

接上一篇产品经理的 Python 自学之路(一),聊一聊掌握 Python 基石概念后,为什么自己写代码还是那么难呢?其中重要的一点是编程语言思维和日常解决问题的思维有差异

假设一个场景,如果让你通过问卷从一群有男有女的高中生中找出会打篮球的男生。你会怎么找呢?你肯定只会给男生发问卷是吧?

好,那 Python 是怎么做的呢?

先看一个例子。

假设 A 是一个字典组成的列表,包括了不同国家在不同年份的人口数、三个字母的国别码。

A=[
 {
  'Country Name':'Arab World',
  'Country Code':'ARB',
   'Year':'1960',
   'Value':'96388069'
 },
 {
  'Country Name':'Arab World',
'Country Code':'ARB',
'Year':'1961',
‘Value':'98882541'
},

]

(用“…”表示省略)

B 是一个字典,包含两个字母的国别码。

B={
'ad':'Andorra',
'ae':'United Arab Emirates',
'af':'Afghanistan',

}

A 中有些国家在 B 中并没有。现在要绘制一张2010年世界人口地图。需得到一个字典,其键值对的 key 是 2 位数国别码,value 是人口数。

求2010 年的人口数比较方便。关键是 2010 年的国家对应的 2 位数国别码怎么求?

刚开始的时候,我是这么想的:根据 A ,首先能求出 2010 年的所有国家,可以写个列表。那么只要把这个列表里的每一项和 B 去匹配,匹配得上的,取到对应的 key (即 2 位数国别码)。完美!!那我只要写一个函数,这个函数的参数是一个列表,传入列表,得到一个匹配的结果。

好棒,开始写函数!然后特么的就悲剧了.....写不来....

然后我看答案:

def get_country_code(country_name):
for code,name in B.items():
if name==country_name:
return code
return None

C={}
for a in A:
if a['Year']=='2010':
country_name=a['Country Name']
population=int(a['Value']))
code=get_country_code(country_name)
if code:
C[code]=population
print C

要求出 2010 年的国家对应的 2 位数国别码,我的思路是:

在所有年份的国家里(A)筛选出含2010年的所有国家 -> 挑出哪些国家含2位数国别码 -> 分解这个整体,求得这些国家的2位国别码。

而 Python(或者编程语言)的思路是:

求得含2010年的所有国家 -> 求得每个国家的2位国家码 -> 去掉没有2位国家码的国家,将含 2 位国家码的国家汇集。

我的思路,或者说日常解决问题的思路是从整体里找特殊的个体,再去解析个体什么属性。就像开篇的场景中,先把人分成男女,再在男生里找更细分群体。

日常解决问题的思路.png
而 Python 是看成一个个个体,去找带有某个属性的个体。它会给所有人发问卷,筛选出带“打篮球”属性的个体,再筛选出带“男生”属性的个体。在这个例子中,在它的眼里,没有“子类”、“细分群体”这样的结构概念。个体都是平等的,只有带或不带某种属性的差异。
编程语言的思路.png
以上是一个重要的差异。还有一些小差异。比如它先假定结果存在。想把国别码和人口数量作为键值对组成一个字典,现实世界的思路是先找到这俩要素,再组成字典。但编码时先定义了字典 C={},再去找俩要素。这对于小白来说一开始还是挺痛苦的。

有空再写一篇小白学 Python tips..

相关文章

  • 产品经理的 Python 自学之路(二)

    接上一篇产品经理的 Python 自学之路(一),聊一聊掌握 Python 基石概念后,为什么自己写代码还是那么难...

  • 产品经理的 Python 自学之路(一)

    自学两周,刚刚在踩过无数坑,成功跑通了一个小爬虫(在 linkedin 找到做过某项业务的产品经理,并把他们的项目...

  • 免费直播课 | 没人带的产品小白如何自学入门?

    每一个“合格”的产品经理都是从“懵懂”的产品新人开始的,而每个“懵懂”的新人都是从自学开始试探着走上产品之路。 这...

  • 产品体验报告——序言

    看完手把手的视频课程和Axure的教学视频,终于走到了产品经理自学之路的最后一站——写产品体验报告。看了纯银的...

  • 用十张图带你了解产品经理的思维国度

    前面丁丁跟大家聊过转型产品经理自学知识大纲(回复「庖丁开发」公众号「产品」看相关文章),对于产品经理来说,产品思维...

  • 小白产品经理看产品:什么是互联网产品

    当你开始准备做一个产品经理之后,你就开启了产品经理之路。但刚开始的产品视角还不是产品经理的视角,只是小白产品经理的...

  • 2018-02-27

    产品经理成长之路 用户调研是产品经理的基本功,大多数产品经理能够自己去找典型的用户,去观察用户的行为,所以产品经理...

  • 产品经理工作中的那些事儿!

    作为一位产品经理,从设计师转行到产品经理中,我们来探讨下产品经理的成长之路! 最近大家都在谈论产品经理,从各行各业...

  • 产品经理怎么自学?

    在自学的过程中,没有人告诉我们应该去学什么,以及如何去学。自学的话,最好结合自己当下的工作职责和提升方向,自己决定...

  • 产品经理真的没有那么简单

    产品经理真的没有那么简单。 几个月前刚刚转行做产品经理的时候,为了求职在知乎洋洋洒洒的分享了我零基础自学产品经理的...

网友评论

本文标题:产品经理的 Python 自学之路(二)

本文链接:https://www.haomeiwen.com/subject/lypvzttx.html