[英]Remove unnecessary square brackets from output
下面的代码返回:
[[('direction', 'north')], [('direction', 'east')], [('direction', 'south')]]
每个值周围都有一组 [ ] ,我想知道如何摆脱它们。 理想的 output 是:
[('direction', 'north'), ('direction', 'east'), ('direction', 'south')]
这是 function:
def scan(input):
words = input.split()
dictionary = [('direction', 'north'),('direction', 'south'),('direction', 'east')]
output = []
for word in words:
output.append(list(filter(lambda x:word in x, dictionary)))
return output
print(scan('north east south'))
有谁知道为什么方括号出现在 output 中以及我如何摆脱它们?
非常感谢任何帮助。
先生,您的生活过于复杂。 就用这个。
#注意:x 将是您的列表
new = [lst[0] for lst in x]
output
[('direction', 'north'), ('direction', 'east'), ('direction', 'south')]
您使用错误的方法来增加您的外部列表。 您附加了一个元组列表,而不是简单地添加元组。 只需将 function 更改为您需要的:
output.extend(list(filter(lambda x:word in x, dictionary)))
结果:
[('direction', 'north'), ('direction', 'east'), ('direction', 'south')]
修复它发生的问题,而不是稍后扭转错误。
这些 qotes 是因为您的过滤器已转换为内部包含元组的列表。 因此,如果您只通过像这样添加 [0] 来获取第一个元素
output.append(list(filter(lambda x:word in x, dictionary))[0])
它应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.