Python 2.7 python列表理解未按预期工作

Python 2.7 python列表理解未按预期工作,python-2.7,list,list-comprehension,Python 2.7,List,List Comprehension,我不熟悉python中的列表理解。我正准备将for if语句转换为list CONTRUMENT,但它没有按预期工作: a = ['Done', 'add dns addRec test 11.11.11.11'] record = "addRec" 普通python代码: list_new = [] for member in a: if record and "addRec" in member: list_new.append(member) print(li

我不熟悉python中的列表理解。我正准备将for if语句转换为list CONTRUMENT,但它没有按预期工作:

a = ['Done', 'add dns addRec test 11.11.11.11']
record = "addRec"
普通python代码:

list_new = []    
for member in a:
  if record and "addRec" in member:
    list_new.append(member)
    print(list_new)
我的清单:

list_new = [list_new.append(member) for member in a if record and "addRec" in member]
列表\新列表将作为空列表返回

它应返回:

['add dns addRec test 11.11.11.11']

ComperExtension已经返回了一个列表,所以我认为这个列表是多余的

我复制了你的代码,没有“记录”和附加部分。它似乎在起作用:

a = ['Done', 'add dns addRec test 11.11.11.11']
list_new = []
for member in a:
  if "addRec" in member:
    list_new.append(member)
    print(list_new)
assert ['add dns addRec test 11.11.11.11'] == list_new

#comperhension
list_new = [member for member in a if "addRec" in member]
print list_new
assert ['add dns addRec test 11.11.11.11'] == list_new
编辑(在问题编辑后添加“记录”):

试试这个:

list_new = [member for member in a if record and "addRec" in member]

请注意,
.append()
函数没有返回任何内容。

记录代表什么?编辑了问题。
记录
条件没有做任何事情,因为记录==“addRec”,因此是truelike。我不确定它最初是不是有什么不同,OP想要
成员中的if record和成员中的“addRec:
还是没有,但现在,它是毫无意义的。我同意,记录在问题中看起来是无用的,但它可能只是其价值的一个例子。在任何情况下,我的答案都包含两种情况的解决方案(有记录或无记录)
list_new = [member for member in a if record and "addRec" in member]