【问题标题】:Find an Exact Tuple Match in a List of Tuples and Return Its Index [duplicate]在元组列表中查找精确的元组匹配并返回其索引 [重复]
【发布时间】:2013-12-12 21:48:19
【问题描述】:

我试图弄清楚如何确定一个元组是否在一个元组列表中完全匹配,如果是,则返回匹配元组的索引。例如,如果我有:

TupList = [('ABC D','235'),('EFG H','462')]

我希望能够获取任何元组 ('XXXX','YYYY') 并查看它在 TupList 中是否完全匹配,如果是,它的索引是什么。例如,如果元组 ('XXXX','YYYY') = (u'EFG H',u'462') 完全正确,那么代码将返回 1

我也不想让像('EFG', '462')(基本上是任何一个元组元素的任何子字符串)这样的元组匹配。

【问题讨论】:

    标签: python python-2.7 beautifulsoup


    【解决方案1】:

    使用list.index:

    >>> TupList = [('ABC D','235'),('EFG H','462')]
    >>> TupList.index((u'EFG H',u'462'))
    1
    

    【讨论】:

    • 小提示-如果列表中不存在元组,则会出现错误。
    • 非常感谢@hcwhsa。这是我需要的,但是,如果我要查找的特定元组不在列表中,我也需要我的代码不会因为生成的错误而中断。除了使用if ((u'EFG H', u'462')) in TupList == False: 分两步然后继续或else: TupList.index((u'EFG H',u'462')) 之外,还有什么简单的方法可以解决这个问题?
    • 感谢@Ashwini Chaudhary,这很有帮助。如果你有重复元素怎么办? TupList = [('ABC D','235'),('EFG H','462'), ('EFG H','462')] .index 似乎只给了我 1 个值
    • @YiXiangChong 在这种情况下您将不得不使用循环:[index for index, item in enumerate(TupList) if item == (u'EFG H',u'462')]
    【解决方案2】:

    我认为你可以这样做

    TupList = [('ABC D','235'),('EFG H','462')]
    if ('ABC D','235') in TupList:
       print TupList.index(i)
    

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      相关资源
      最近更新 更多