如何使用Python基于另一个列表值创建子集列表

问题描述 投票:0回答:1

我有三个相同的散点图绘制长度列表: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一周左右!

提前致谢

python-3.x
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.