Python小白问题一个,求大家的帮助。
wangcai
由 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楼
·
xiaomayi0323
回复于 2014年03月12日
4楼 @minddriven 翻译书中一般称之为列表推导
6楼
·
stonedreamlh
回复于 2014年03月12日
这是Python3推荐的列表写法
7楼
·
cnsoft
回复于 2014年03月13日
不这么写的人飘过... 是不是伪Pythoner 呢。。
8楼
·
minddriven
回复于 2014年03月13日
9楼
·
wangcai
回复于 2014年03月13日
4楼 @minddriven 噢,原来是这样!非常专业啊,万分感谢!看了你的帖子才知道有 List Comprehension和 pep8 这个东西,学习了,谢谢!!
10楼
·
moulton
回复于 2014年03月14日
喜欢有条理 那就按你的写了
本帖有11个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。