我有三个相同的散点图长度列表:x(浮点数),y(浮点数)和c(颜色整数),并且想将x和y列表分成按颜色值过滤的子集,以便我可以使用图例在情节中对其进行描绘
虽然我可以通过遍历x和y列表的len(c)
循环来实现此目标,但它不是非常pythonic,我希望有人可以提供一些更优雅的方式
我在想类似下面的内容,但是显然不起作用
c_list = list(set(c))
xset = []
yset = []
for j in c_list:
xset.append([i for i in x if j in c])
yset.append([i for i in y if j in c])
要谦虚-我只学习Python一周左右!
预先感谢
答案 0 :(得分:1)
我希望这会有所帮助:
x = [1, 2, 3, 4, 5]
y = [5, 3, 1, 3, 2]
c = [1, 3, 2, 3, 1]
c_list = list(set(c))
xset = []
yset = []
for j in c_list:
xset.append([x[i] for i, v in enumerate(c) if v == j])
yset.append([y[i] for i, v in enumerate(c) if v == j])
print(xset)
print(yset)