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吗?
python写多了应该就习惯这种思维方式了,Result是个list,list中的元素是哪些呢?是一些capitalize后的w组成,那么w来自哪里呢?来自random.sample出的这个list。之所以不写成你那种样式,可能就是传说中的Pythonista,你写多了自然就会那么写了。
那个写法叫做 List Comprehension ,是基于现有的 List 来创建一个新的 List。其实很多语言都支持。
>>> l = [1, 2, 3]
>>> [ i + 1 for i in l ]
[2, 3, 4]
这东西就像是说话或者写作。
如果是喜欢的,是有心人,会不知不觉积累一些有趣的短语跟说法。运用的时候,会不知不觉。
有的人为了炫耀自己懂得很多短语,为美词佳句而美词佳句,就成了炫技了,整个看起来就很怪。
另,打开 pep8 检查,其实更好。
4楼 @minddriven 噢,原来是这样!非常专业啊,万分感谢!看了你的帖子才知道有 List Comprehension和 pep8 这个东西,学习了,谢谢!!