【问题标题】:Compare 2 lists, based on index from 2 other lists, and save index in new list with list comprehension根据来自其他 2 个列表的索引比较 2 个列表,并使用列表理解将索引保存在新列表中
【发布时间】:2019-06-19 17:57:09
【问题描述】:

所以我想做的是:

1) 查找 list1[y] == list2[x]

2) 判断 list3[y]

3) 如果是,则将索引 y 存储在新的索引列表中

这个循环有效,但是运行我的数据集需要将近一分钟。我想知道我是否可以通过列表理解来做到这一点。

提前感谢任何人的帮助。

    for y in range(len(list1)):
        for x in range(len(list2)):
            if list1[y] == list2[x]:
                if list3[y] < (0.4 * list4[x]):
                    list5.append(y)

【问题讨论】:

    标签: python list indexing comparison list-comprehension


    【解决方案1】:

    我不确定这是否会显着提高性能,但试试这个:

    list5 = [y for y, val1 in enumerate(list1) for x, val2 in enumerate(list2) if val1 == val2 and list3[y] < (0.4 * list4[x])]
    

    【讨论】:

    • 哦,是的,这将其缩短到大约 10 秒。这是完美的,非常感谢。
    • @GitGud 没问题,很高兴能帮上忙!如果此答案对您有所帮助,请确保将其标记为已接受。见stackoverflow.com/help/someone-answers
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多