Python 列表推导式 if else for in join with as
c = a if a>b else b //如果a>b返回a,否则返回b
>>> a = 1
>>> b = 2
>>> c = a if a>b else b
>>> c
2
c = [b,a][a>b] //如果a>b返回a,否则返回b
>>> a = 1
>>> b = 2
>>> c = [b,a][a>b]
>>> c
2
c = [ i for i in a if i%2==0 ] //遍历a,在i为偶数时返回
>>> a = [1,2,3]
>>> c = [i for i in a if i%2==0]
>>> c
[2]
注意当你用上述方式生成列表,但又不引用而只是作为临时参数时,为减少内存开销,应将sum( [ i for i in a if i%2==0 ] )改成sum( i for i in a if i%2==0 ),
生成集合:c = { i for i in a if i%2==0 } //遍历a,在i为偶数时返回
生成字典:c = { i:i**i for i in a if i%2==0 } //遍历a,在i为偶数时返回
c = [i+j for i in a for j in b if i%2==0 and j%2==0] //同时嵌套遍历列表a和b,返回i和j同时为偶数时的和。其中for in a属于外层嵌套,for in b属于内层
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [i+j for i in a for j in b if i%2==0 and j%2==0]
>>> c
[6, 8]
c = [i if i%2==0 else 1 for i in a] //遍历a,如果i为偶数直接返回,否则直接返回1。此处if写在for前面要求必须有else项
>>> a = [1,2,3]
>>> c = [i if i%2==0 else 1 for i in a]
>>> c
[1, 2, 1]
a,b=b,a //交换数据
>>> a=1
>>> b=2
>>> a,b=b,a
>>> a
2
>>> b
1
"".join["1","2"] //字符list的连接
>>> c = "".join(["1","2"])
>>> c
"12"
class Sample:
def __enter__(self):
return self
def __exit__(self, type, value, trace):
print "type:", type
print "value:", value
print "trace:", trace
def do_something(self):
bar = 1/0
return bar + 10
#1、类Sample被实例化后,调用__enter__()方法,将返回值赋给as后的变量sample
#2、with语句下的语句sample.do_something()被执行
#3、语句执行完或者是出现异常时调用__exit__()方法
with Sample() as sample:
sample.do_something()
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Python if 和 for 的多种写法
- 下一篇: 深入理解C语言-----各数据类型大小