在 Python 中通过用逗号分隔项目来创建一个元组:
>>> 1,2,3
(1, 2, 3)
>>> x = 1,2,3
>>> x
(1, 2, 3)
在像您一样使用列表推导式以及其他情况时,您必须向 python 提示您正在尝试创建一个元组这一事实(而且它往往也有助于其他开发人员,这总是一件好事)。正如Martijin 指出的那样 -(os.stat(f).st_size, os.path.realpath(f))
正在创建一个元组。
>>>[(os.stat(f).st_size, os.path.realpath(f)) for f in glob.glob('*.sh')]
^ ^. ^
| \_ this makes |
\__________________ it a tuple |
\____________________\___ These are how Python knows to
that the comma makes it a tuple - they group that piece of code toegether.
你可以在里面放任何你想要的东西...
- 列个清单:
[[os.stat(f).st_size, os.path.realpath(f)] for f in glob.glob('*.sh')]
- 什么都没有怎么办?
[None for f in glob.glob('*.sh')]
- 让我们把文件名倒过来:
[f[::1] for f in glob.glob('*.sh')]
这是一个非常高级的资源,它讨论了列表推导和生成器之类的内容,可能会很有趣。