为什么我不能这样做:
files = [file for file in ['default.txt'].append(sys.argv[1:]) if os.path.exists(file)]
答案 0 :(得分:10)
list.append
不会在Python中返回任何内容:
>>> l = [1, 2, 3]
>>> k = l.append(5)
>>> k
>>> k is None
True
你可能想要这个:
>>> k = [1, 2, 3] + [5]
>>> k
[1, 2, 3, 5]
>>>
或者,在您的代码中:
files = [file for file in ['default.txt'] + sys.argv[1:] if os.path.exists(file)]
答案 1 :(得分:4)
如果您不想复制列表,也可以使用itertools.chain
。
files = [file for file in itertools.chain(['default.txt'], sys.argv[1:])
if os.path.exists(file)]