如何在 Python 上使用地图和设置
How to use map and set on Python
有没有办法让它更干净一点?
在执行操作后,我必须继续将所有内容转换为列表,这行代码让我很困扰。我对编程有点陌生,希望有一些更像样的东西。这个解决方案对我有用,但是有点难看。
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = list(set(list(map(lambda x: x.lower(), exclusion_new))))
print(x)
result: ["abs", "acd", "bde", "kji"]
您可以删除 list()
的一个电话:
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = list(set(map(lambda x: x.lower(), exclusion_new)))
此外,在这种情况下,将 map-function 与 lambda 结合使用 overkill .
您应该改用简单的列表理解:
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = set([x.lower() for x in exclusion_new])
或者集合理解:
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = [*{x.lower() for x in exclusion_new}]
您可以使用解包列表并将 str.lower 传递给地图函数使其更简洁:
x = [*{*map(str.lower, exclusion_new)}]
有没有办法让它更干净一点? 在执行操作后,我必须继续将所有内容转换为列表,这行代码让我很困扰。我对编程有点陌生,希望有一些更像样的东西。这个解决方案对我有用,但是有点难看。
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = list(set(list(map(lambda x: x.lower(), exclusion_new))))
print(x)
result: ["abs", "acd", "bde", "kji"]
您可以删除 list()
的一个电话:
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = list(set(map(lambda x: x.lower(), exclusion_new)))
此外,在这种情况下,将 map-function 与 lambda 结合使用 overkill .
您应该改用简单的列表理解:
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = set([x.lower() for x in exclusion_new])
或者集合理解:
exclusion_new = ["Abs", "acd", "bde", "Abs", "Kji"] #example list
x = [*{x.lower() for x in exclusion_new}]
您可以使用解包列表并将 str.lower 传递给地图函数使其更简洁:
x = [*{*map(str.lower, exclusion_new)}]