由 wangcai
发布于 2014年03月10日
| 更新于 2014年03月15日
无人欣赏。
List = ['aa', 'bb', 'cc', 'dd']
Result = [w.capitalize() for w in random.sample(List, 2)]
这几句的作用就是在List中随机挑选两个元素,并将首字母大写,然后赋值给Result。 我怎么也理解不了他的执行顺序啊,如果让我写我只会想到:
Result = random.sample(List, 2)
for i in range(0,len(Result)):
Result[i]=Result[i].capitalize()
Coders能告诉我应该怎么理解之前的那两句codes吗?
共11条回复
楼长
· 回复
dawncold
回复于 2014年03月10日
python写多了应该就习惯这种思维方式了,Result是个list,list中的元素是哪些呢?是一些capitalize后的w组成,那么w来自哪里呢?来自random.sample出的这个list。之所以不写成你那种样式,可能就是传说中的Pythonista,你写多了自然就会那么写了。
4楼
· 回复
minddriven
回复于 2014年03月11日
那个写法叫做 List Comprehension ,是基于现有的 List 来创建一个新的 List。其实很多语言都支持。
>>> l = [1, 2, 3]
>>> [ i + 1 for i in l ]
[2, 3, 4]
5楼
· 回复
6楼
· 回复
8楼
· 回复
minddriven
回复于 2014年03月13日
这东西就像是说话或者写作。
如果是喜欢的,是有心人,会不知不觉积累一些有趣的短语跟说法。运用的时候,会不知不觉。
有的人为了炫耀自己懂得很多短语,为美词佳句而美词佳句,就成了炫技了,整个看起来就很怪。
另,打开 pep8 检查,其实更好。
9楼
· 回复
wangcai
回复于 2014年03月13日
4楼 @minddriven 噢,原来是这样!非常专业啊,万分感谢!看了你的帖子才知道有 List Comprehension和 pep8 这个东西,学习了,谢谢!!
11楼
· 回复
本帖有11个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。