首页 > 技术文章 > Python高级语法

iscanghai 2021-11-17 21:42 原文

  • 列表推导式
[ expression for x in X [if condition]
             for y in Y [if condition]
             ...
             for n in N [if condition] ]

例如:

>>> [(x, y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]

等价于:

>>> L = []
>>> for x in range(5):
...     if x % 2 == 0:
...         for y in range(5):
...             if y % 2 == 1:
...                 L.append((x, y))
>>> L
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
  • with ... as
with open('/path/to/file', 'r') as f:
    print(f.read())

文件使用完毕必须关闭资源,一般使用try ... finally,而with ... as自动调用了f.close(),代码更加简洁。

 

推荐阅读