【问题标题】:List in python to output mapped nodes在python中列出以输出映射节点
【发布时间】:2017-12-20 23:50:35
【问题描述】:

我有一个这样的列表['AC', 'AF', 'CF']

我希望输出为[A,C,F]

例如,如果输入是:['AC', 'AD', 'CD'],那么我希望输出为[A,C,D]

问题

什么是可以理解的获取方式?

【问题讨论】:

  • 你的输入和输出之间的相关性是什么?您能否发布您的代码,以便我们了解您迄今为止所做的尝试?

标签: arrays python-3.x list


【解决方案1】:

如果您要查找的只是输入中所有唯一字符的列表,您可以执行以下操作:

sorted(list(set(''.join(['AC', 'AF', 'CF']))))

这是通过将您的输入转换为单个字符串,然后将该字符串转换为一个集合来实现的,这将删除重复项。然后我们将该集合转换回列表并对其进行排序。

上面例子的输出是:

['A', 'C', 'F']

【讨论】:

    【解决方案2】:

    你可以使用itertools:

    import itertools
    s = ['AC', 'AF', 'CF']
    final_data = list(set(list(itertools.chain(*map(list, s)))))
    

    输出:

    ['A', 'C', 'F']
    

    【讨论】:

      【解决方案3】:

      list的字符串上使用set(),然后使用sorted()对集合进行排序:

      >>> a_list = ['AC', 'AF', 'CF']
      >>> sorted(set(''.join(a_list)))
      ['A', 'C', 'F']
      >>> b_list = ['AC', 'AD', 'CD']
      >>> sorted(set(''.join(b_list)))
      ['A', 'C', 'D']
      

      注意,sorted() 返回一个list

      既然您在问什么是可以理解的获取方法,那么这就是每个步骤发生的情况:

      >>> a_list = ['AC', 'AF', 'CF']
      >>> ''.join(a_list)  # Concatenation of the strings in the list
      'ACAFCF'
      >>> set(''.join(a_list))  # Set is an unordered collection of unique elements
      {'A', 'F', 'C'}
      >>> sorted(set(''.join(a_list)))  # List of all the items in the above set in ascending order
      ['A', 'C', 'F']
      

      【讨论】:

        猜你喜欢
        • 2020-12-10
        • 1970-01-01
        • 2021-05-18
        • 1970-01-01
        • 2015-11-05
        • 2014-08-13
        • 2021-12-08
        • 1970-01-01
        • 2014-07-22
        相关资源
        最近更新 更多