Ugu*_*tun 2 python tuples list-comprehension list python-3.x
我读了一些关于Python的技巧并且遇到了以下代码.我混淆了为什么代码在列表的列表中创建了两个元素的元组.为什么python在列表中返回元组而不是列表中的列表?是否与元组不可变有关?提前致谢.
>>>import os, glob
>>>[(os.stat(f).st_size, os.path.realpath(f)) for f in glob.glob('*.sh')]
[(3074, '/home/usr1/a.sh'),
(3386, '/home/usr1/b.sh'),
(3070, '/home/usr1/c.sh')]
Run Code Online (Sandbox Code Playgroud)
代码显式生成元组:
(os.stat(f).st_size, os.path.realpath(f))
Run Code Online (Sandbox Code Playgroud)
这是生成的每个列表元素的2值元组.列表理解可以重写为:
result = []
for f in glob.glob('*.sh'):
item = (os.stat(f).st_size, os.path.realpath(f))
result.append(item)
Run Code Online (Sandbox Code Playgroud)
如果要生成嵌套列表,请用方括号替换括号:
[[os.stat(f).st_size, os.path.realpath(f)] for f in glob.glob('*.sh')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |