Python 列表推导

来源:互联网 发布:比尔盖茨编程一小时 编辑:程序博客网 时间:2024/06/03 02:41

1.正常情况下,我们这样来遍历列表

numbers = range(10)size = len(numbers)evens = []i = 0while i < size:    if i % 2 == 0:        evens.append(i)    i += 1        for f in evens:    print (f)


2.当然可以用更简单的python支持的列表推导

[i for i in range(10) if i % 2 == 0]for f in evens:    print (f)

怎讲将["one","two","three"] =>["0:one","1:two","2:three"]呢?

1.正常情况下,可能以开始会想到:

i  = 0seq = ["one","two","three"]for element in seq:    seq[i] = '%d:%s' % (i,seq[i])    i += 1    for f in seq:    print (f)


2.其实可以用enumerate

seq = ["one","two","three"]for i,element in enumerate(seq):    seq[i] = '%d:%s' % (i,seq[i])    for f in seq:    print (f)

3.当然可以用一个方法+enumerate

def _treatment(pos,element):    return '%d:%s' % (pos,element)seq = ["one","two","three"]seq = [_treatment(i, el) for i,el in enumerate(seq)]for f in seq:    print (f)




0 0
原创粉丝点击