为了账号安全,请及时绑定邮箱和手机立即绑定

从另一个列表中查找数字索引

从另一个列表中查找数字索引

慕无忌1623718 2021-06-29 13:27:31
我使用的是 Python 3,我的代码中有两个列表:ListA = [53, 1, 17, 4, 13, 2, 17] ListB = [4, 3, 1]现在,我想在 ListA 中的 ListB 中找到任何数字的索引。这种情况下的输出应该是1因为:其中的第一个值ListA也是 inListB是1。值的索引1中ListA是1。
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

如果您无法找出正确的 PID,我可能有一个替代解决方案,利用您用于启动该过程的参数。它不是那么好,因为您将遍历流程树直到找到匹配项,但这样它肯定会找到流程。


请记住,如果您有多个运行相同参数的进程,这可能不会总是返回正确的进程。


def process_get(*args):

    """Returns the process matching ``args``.

    Relies on ``args`` matching the argument list of the process to find.


    Args:

        *args: process arguments, e.g. ["java", "-jar", "somejar.jar"]


    Returns:

        :obj:`process`

    """

    import psutil

    for process in psutil.process_iter():

        try:

            if process.cmdline() == args:

                return process

        except psutil.AccessDenied:

            pass

    return None


查看完整回答
反对 回复 2021-07-06
?
烙印99

TA贡献1829条经验 获得超13个赞

如果你想要更好的效率,你可以ListB变成一个集合,这样你就可以确定一个项目是否在ListBO(1) 的平均时间复杂度中:


setB = set(ListB)

print(next(i for i, a in enumerate(ListA) if a in setB))

这输出: 1


查看完整回答
反对 回复 2021-07-06
  • 3 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信