lists = [['12','saw'],['12','dan'],['16','man']]
contain = []
def foo(y, x):
host = [item[0].lower() for item in y]
unique_labels = []
for item, count in collections.Counter(host).items():
if count == 1:
unique_labels.append(item)
x = [item for item in y if item[0] in unique_labels]
return x
foo(lists,contain)
print contain #returns an empty list instead of a list of lists
嗨,我有这个函数,它接受列表列表并根据特定条件返回一个新的列表列表。但是,当我调用该函数并尝试查看新的列表列表时,它将返回空列表。我不明白为什么'包含'是空的。任何帮助将不胜感激
答案 0 :(得分:0)
列表contain
开始为空,您永远不会对其进行修改,因此在打印时它是空的。函数foo
接收contain
作为参数x
的参数。 Foo不会在参数中添加任何内容。相反,它重复将名称 x
重新绑定到新列表,然后返回最后一个新列表。您的代码会忽略返回的列表,并将其删除。
如果foo
应填写输入参数x
,则应该x.append
或x.extend
次调用从不重新绑定{ {1}}。