您的位置:首页 > 编程语言 > Python开发

Python 列表推导式 if else for in join with as

2017-03-21 14:32 1096 查看
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