gpt4 book ai didi

python - 如何通过索引访问集合元素?

转载 作者:行者123 更新时间:2023-12-01 15:05:06 24 4
gpt4 key购买 nike

当我遇到一个严重的问题时,我正在使用 Python 研究推荐系统 (RS):我无法在不更改顺序的情况下访问该集合。

例如一旦我更改了一组列表,订单就会发生变化。 (推荐,系统顺序很重要。)
final_prediction=set(df_final)-set(df1)
例如

>>> df_final=['a','x','z','p','s','j','b']
>>> df1=['b','j']
>>> set(df_final)-set(df1)
{'p', 'a', 's', 'z', 'x'}

这里 df_finaldf1两者都是分类变量

尽管我使用了其他方法,但我不得不抓紧我的屁股来更改代码,因为它使用 set thing 给出了完美的结果,并且所有其他东西都运行良好。我正处于 RS 的最后阶段,但由于设定的顺序,我不得不采取其他方法。

我们如何在不改变顺序的情况下访问一个集合?

最佳答案

set是一个无序的集合。对于有序集合,您可以使用 listtuple .您现在有几个选择。您的选择应取决于您是否期望在 df_final 中重复。 .如果没有重复,则可以使用列表推导式:

df1_set = set(df1)
res1 = [i for i in df_final if i not in df1_set]
# ['a', 'x', 'z', 'p', 's']

如果您在 df_final 中有重复,那么您需要保持排序的独特项目。为此,您可以使用 toolz.unique ,相当于 unique_everseen配方在 the docs 中找到:
from toolz import unique

res2 = [i for i in unique(df_final) if i not in df1_set]

关于python - 如何通过索引访问集合元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52027610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com