从重复元素列表创建非重复元素列表。仅使用列表理解
Creating a list of non-repetitive elements from repetitive-elemets list. Using list-comprehansion only
如何将下面的 "for-loop" 转换为“列表理解?
我想从重复元素列表中创建一个非重复元素列表。
many_colors = ['red', 'red', 'blue', 'black', 'blue']
colors = []
for c in many_colors:
if not c in colors:
colors.append(c)
# colors = ['red', 'blue', 'black']
我试过这个(如下),但出现颜色未定义的错误。
colors = [c for c in many_colors if not c in colors]
使用套装让您的生活更轻松:
colors = [c for c in set(many_colors)]
您可以在 python 中使用 set
,它表示唯一元素的无序集合。
使用:
colors = list(set(many_colors))
print(colors)
这会打印:
['red', 'black', 'blue']
colors
仅在领悟完成后存在。
理解甚至可能不是最佳的。你可以做到
colors = list(set(colors))
如果你想保持出现的顺序:
from collections import OrderedDict
colors = list(OrderedDict.fromkeys(many_colors))
如何将下面的 "for-loop" 转换为“列表理解? 我想从重复元素列表中创建一个非重复元素列表。
many_colors = ['red', 'red', 'blue', 'black', 'blue']
colors = []
for c in many_colors:
if not c in colors:
colors.append(c)
# colors = ['red', 'blue', 'black']
我试过这个(如下),但出现颜色未定义的错误。
colors = [c for c in many_colors if not c in colors]
使用套装让您的生活更轻松:
colors = [c for c in set(many_colors)]
您可以在 python 中使用 set
,它表示唯一元素的无序集合。
使用:
colors = list(set(many_colors))
print(colors)
这会打印:
['red', 'black', 'blue']
colors
仅在领悟完成后存在。
理解甚至可能不是最佳的。你可以做到
colors = list(set(colors))
如果你想保持出现的顺序:
from collections import OrderedDict
colors = list(OrderedDict.fromkeys(many_colors))