Python——列表生成式

生成列表

生成[1x1, 2x2, 3x3, …, 10x10],方法一:

>>> L = []
>>> for x in range(1, 11):
...    L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是使用列表生成式,可以这样写:

[x * x for x in range(1, 11)]

一行搞定。

复杂表达式

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
    if score<60 :
        return '<tr><td style="color:red">%s</td><td>%s</td></tr>' % (name, score)
    return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)

tds = [generate_tr(name,score) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'

条件过滤

例如:编写一个函数,它接受一个 list,然后把list中的所有字符串变成大写后返回,非字符串元素将被忽略

def toUppers(L):
    return [i.upper() for i in L if isinstance(i,str)]

print toUppers(['Hello', 'world', 101])

多层表达式

对于for循环,还可以嵌套使用:

#print [x for x in range(100,1000) if str(x)[0]==str(x)[-1]]
L=[]
for m in range(1,10):
    for n in range(10):
        for x in range(10):
            if str(m)==str(x) :
                L.append(m*100+n*10+x)

print L
时间: 2024-10-31 04:30:15

Python——列表生成式的相关文章

isinstance-你好,关于python列表生成式有个问题想请教一下

问题描述 你好,关于python列表生成式有个问题想请教一下 x='abc'y=123想要输出a=1b=2c=3我是这么写的: x='abc'y=123[k+'='+v for k in x for v in y if isinstance(ystr) else v for v in str(y)]但是提示出错,请问应该怎么改 解决方案 z = str(y).join('{0}={1}'.format(x[i] z[i]) for i in range(3)) 解决方案二: y是字符串的话 '1

通过代码实例展示Python中列表生成式的用法_python

1 平方列表 如果你想创建一个包含1到10的平方的列表,你可以这样做: squares = [] for x in range(10): squares.append(x**2)   这是一个简单的例子,但是使用列表生成式可以更简洁地创建这个列表. squares = [x**2 for x in range(10)] 这个最简单的列表生成式由方括号开始,方括号内部先是一个表达式,其后跟着一个for语句.列表生成式总是返回一个列表. 2 整除3的数字列表 通常,你可能这样写: numbers =

在Python中使用列表生成式的教程_python

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11): >>> range(1, 11) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环: >>> L = [] >>>

王亟亟的Python学习之路(六)-递归,迭代,列表生成式

转载请注明出处:王亟亟的大牛之路 最近事情比较多,也没什么时间学习.(借口,明明在偷懒) 难得空下来,就继续把文章写下去.(玩手游时间更多) 在贴今天要写的内容之前还是先说一下某些概念!(概念还是很重要的,虽然更重要的是理解) 什么是递归?(维基来的) 白话的理解就是某函数自己调用自己 大牛的分析: 递归的基本思想是把规模大的问题转化为规模小的相似的子问题来解决.在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况.另外这个解决问题的函数必须有明

python 列表生成器

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 如果python也这么写,那么真该看下python的基础教程了~ 但要注意的是,需要加一个[]来,否则会报错... 在上面的例子中,不仅可以嵌套for,甚至可以嵌套if语句 再看看,原来是什么样子 两个循环呢? 原来可能是这样的? 现在可以这样了!!! 本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-

Python列表生成器的循环技巧分享_python

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 如果python也这么写,那么真该看下python的基础教程了~ 但要注意的是,需要加一个[]来,否则会报错... 在上面的例子中,不仅可以嵌套for,甚至可以嵌套if语句 再看看,原来是什么样子 两个循环呢? 原来可能是这样的? 现在可以这样了!!!

list-!求助:python 列表读取时的问题

问题描述 !求助:python 列表读取时的问题 project euler problem 81题我写了下面的代码,origin里面是5x5的矩阵,运行结果正常但是我把origin换成一个80x80的矩阵的时候,在读取383568的时候却读取成了326735我没有找出代码的问题,但是在codepad和terminal上运行也是错误答案求助大牛啊!!大恩不言谢 origin = ['13167323410318' '20196342965150' '630803746422111' '53769

python列表操作实例_python

本文实例讲述了python列表操作的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: class Node:    """Single node in a data structure"""      def __init__(self, data):       """Node constructor"""              self._data = da

python 列表中的n个字典的更新问题

问题描述 python 列表中的n个字典的更新问题 弄了一下午还是没想明白: eg: d1 = [{"eslid":"5A-15-D4-99","nw1":"51-02-01-66","nw3":"50",'rfpower': '50', 'netid': '65', 'apid': 1, 'version': '51', 'battery': '30', 'reverse': '0'}