【问题标题】:Try To Print Map as str/list/join without succeess尝试将地图打印为字符串/列表/加入但没有成功
【发布时间】:2020-05-08 14:56:00
【问题描述】:
    def intersection(list_1, list_2):

return map(lambda list0 : list(dict.fromkeys(list0)), [x for x in list_1 if x in list_2 ])
print(intersection([5, 5, 6, 6, 7, 7], [1, 5, 9, 5, 6]))

lambda 中删除重复项的 func 和在 [ ] 中的列表(来自列表理解)通过映射转移到 func。 当我尝试将它变成一个列表/str/join 时,就会出现这个错误。 我能做什么,为什么会这样? 我添加了一个示例运行,假设打印 [5,6] 但返回错误。 请注意,列表本身 ([ ]) 单独返回:[5, 5, 6, 6] 因为原始列表中有重复项。

另外,如果我将代码从一行更改为阻止 og 代码,它可以工作:

def intersection(list_1, list_2):
my_list = [x for x in list_1 if x in list_2]
small_func = lambda list0 : list(set(list0))
return small_func(my_list)

返回:[5,6]

谢谢!

【问题讨论】:

  • 请避免将代码放在屏幕截图中。编辑此问题以包含您遇到问题的代码,以及使用的变量示例和预期输出。
  • @HampusLarsson 我改变了问题并使其成为要求

标签: python function dictionary join lambda


【解决方案1】:

我认为你不需要这里的地图。您的想法是正确的转换为字典而不是转换回列表,但您只需执行一次。

def intersection(list_1, list_2):
        return list(dict.fromkeys([x for x in list_1 if x in list_2]))

print (intersection([5, 5, 6, 6, 7, 7], [1, 5, 9, 5, 6]))

【讨论】:

    猜你喜欢
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2020-02-09
    相关资源
    最近更新 更多