当前位置: 首页 > 面试题库 >

通过元组列表快速迭代

顾嘉纳
2023-03-14
问题内容

我想知道是否有一种更快,更省时的方法来遍历元组列表,找到合适的匹配项。我要做的是:

# this is a very long list.
my_list = [ (old1, new1), (old2, new2), (old3, new3), ... (oldN, newN)]

# go through entire list and look for match
for j in my_list:
    if j[0] == VALUE:
        PAIR_FOUND = True
        MATCHING_VALUE = j[1]
        break

根据列表中项目的数量,此代码可能需要花费一些时间才能执行。我敢肯定有更好的方法可以做到这一点。


问题答案:

假设更多的内存使用不是问题,并且如果元组的第一项是可哈希的,则可以从元组列表中创建字典,然后查找值就像从中查找键一样简单dict。就像是:

dct = dict(tuples)
val = dct.get(key) # None if item not found else the corresponding value

编辑 :要创建一个反向映射,请使用类似:

revDct = dict((val, key) for (key, val) in tuples)


 类似资料:
  • 问题内容: 我正在尝试在iOS 8中针对SWIFT中的Objective-C 实现答案 我打电话给 这将导致“致命错误:在展开可选值时意外发现nil” 问题答案: 试试这个代码:

  • 问题内容: 我很好奇如何快速进行元组的for循环。 我知道要访问每个成员,您可以使用带点号的索引号 //错误:类型不符合协议顺序 问题答案: 是的你可以! 瞧! 注意最后一个是不是一个元组这样什么也不会发生(尽管它是一个内容可以被访问1元组或“单” ,为0)。 有趣的是,它甚至可以迭代其他类型的集合。 并且该集合包括和! 注意:作为块的第二个参数传递的值是type 。您必须将其强制转换回原始类型的

  • 问题内容: 我真的是Swift的新手,我刚刚读到类是通过引用传递的,并且复制了数组/字符串等。 通过引用进行传递是否与在Objective-C或Java中通过“ a”引用进行传递的方式相同,还是通过引用进行正确传递? 问题答案: Swift中的事物类型 规则是: 类实例是 引用类型 (即, 您 对类实例的引用实际上是一个 指针 ) 函数是参考类型 其他一切都是 价值类型 ; “其他所有内容”仅表示

  • 问题内容: 我得到这样的定义:顾名思义,快速失败的迭代器一旦意识到 自迭代开始以来 就已经改变了Collection的结构,它就会失败。 自迭代开始以来 是什么意思?是在 Iterator it = set.iterator()之后的 这行代码的意思吗? 问题答案: 首先,它们是 快速 故障的,而不是故障 安全的 。 合同规定,对某些类型的集合进行结构修改(即插入/删除)会使集合中的现有迭代器无效

  • 很多时候,我们给定一个txt或者Excel文件接收用户的输入参数,但是由于用户输入端不受控,很可能我们拿到文件,解析后的某个字段有很多重复项,那么在具体业务前对数据进行去重就显得非常必要。 具体到列表的快速去重这一朴素的需求,我们有哪些方法呢?

  • 本文向大家介绍python-序列解包(对可迭代元素的快速取值方法),包括了python-序列解包(对可迭代元素的快速取值方法)的使用技巧和注意事项,需要的朋友参考一下 一般情况下 对元祖序列解包 对列表序列解包 对dict序列解包获得key和value 以上这篇python-序列解包(对可迭代元素的快速取值方法)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。