繁体   English   中英

如何使用列表理解或任何其他方法使我的 function 更简洁?

[英]How can I make my function more concise by using list comprehension or any other method?

上下文:我有一个列表列表,我正在尝试删除重复的条目。 列表列表按子列表中的第一个元素排序。 当 function 遇到子列表的第一次出现时,function 将该子列表附加到“non_duplicate_list”。 如果 function 遇到另一个具有相同第一个元素的子列表,它将继续。

问题:我有一个运行良好的 function,但我觉得它太长了。 有什么方法可以缩短/使代码更简洁? 也许使用列表理解?

这是 function:

def remove_duplicates(data_set):
    non_duplicate_list = []
    for row in data_set:
        app_name = row[0]
        if any(app_name in sublist for sublist in non_duplicate_list):
            continue
        else:
            non_duplicate_list.append(row)

我尝试这样做是为了使 function 更简洁,但没有奏效:

def remove_the_dupes(data_set):
    non_duplicate_list = [continue if any(row[0] not in sublist for sublist in non_duplicate_list) else non_duplicate_list.append(row) for row in data_set]
    return non_duplicate_list

然后我收到一条关于错误语法的错误消息

如果可能,请提供我的 function 的任何缩短版本。 非常感谢!

这应该工作

 not_duplicate_list = [row for row in datset if not any(row[0] in sublist for sublist in non_duplicate_list)]

你不应该在列表理解中使用continuereturn ,看看这里了解更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM