Python - 迭代list.append的结果

时间:2011-03-22 11:18:42

标签: python list

为什么我不能这样做:

files = [file for file in ['default.txt'].append(sys.argv[1:]) if os.path.exists(file)]

2 个答案:

答案 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)]