首页 > 解决方案 > 如何从列表中消除重复项?

问题描述

我有这个代码:

 def lottery(s):
            return ''.join(x for x in s if x.isdigit()) or "One more run!"

现在,当您打印出 s 时,它只打印数字,当只有字母时,它打印“再跑一次”。到目前为止一切都很好,尽管我也希望它不打印重复项。这意味着当我把print(lottery(4443))它打印出来时,它只打印出 1 个,而不是 3 个。

标签: pythonpython-3.x

解决方案


尝试set()消除重复项(无序)并返回列表sorted

def lottery(s):
            return ''.join(x for x in sorted(set(s)) if x.isdigit()) or "One more run!"

lottery('435435')

订单太关键?

def lottery(s):
            return ''.join(x for x in dict.fromkeys(s) if x.isdigit()) or "One more run!"

lottery('435435')

推荐阅读