【问题标题】:Multidimensional List get Position of a String Python多维列表获取字符串 Python 的位置
【发布时间】:2015-06-11 11:08:40
【问题描述】:

我得到了关注列表

relational_scheme = [["F",["DC"]],["A",["EBD"]],["DC" , ["BAF"]],["E",["DB"]]]

现在我想将第二个列表作为一个集合来

def returnSetOfList(relational_scheme,"F")

让这个输出生成

set(["DC"])

我怎样才能做到这一点?一个简单的索引不起作用。

提前致谢。

更新

知道了,只是瞎了眼 解决方案:

def returnSetOfList(scheme,string):
    for x in scheme:
        if string in x:
            return set(x[1])

【问题讨论】:

  • [[i,set(j)] for (i,j) in relational_scheme]
  • 第二个列表是什么?

标签: python string list indexing set


【解决方案1】:

您可以创建一个字典,然后返回给定键值的set()

示例

>>> def returnSetOfList(scheme, key):
...     a_dict = dict(scheme)
...     return set( a_dict[key] )
... 

>>> relational_scheme = [["F",["DC"]],["A",["EBD"]],["DC" , ["BAF"]],["E",["DB"]]]
>>> returnSetOfList(relational_scheme, "F")
set(['DC'])

【讨论】:

    【解决方案2】:

    您可以使用字典推导式创建字典并通过索引简单地获得预期结果:

    >>> relational_scheme = [["F",["DC"]],["A",["EBD"]],["DC" , ["BAF"]],["E",["DB"]]]
    >>> 
    >>> d={i:set(j) for i,j in relational_scheme}
    >>> d['F']
    set(['DC'])
    

    【讨论】:

      【解决方案3】:

      你可以有如下方法:

      def returnSetOfList(scheme, string):
          for i in scheme:
              if i[0] == string:
                  return set(i[1])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-22
        • 1970-01-01
        • 2021-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2021-12-19
        相关资源
        最近更新 更多