【发布时间】:2017-12-20 23:50:35
【问题描述】:
我有一个这样的列表['AC', 'AF', 'CF']
我希望输出为[A,C,F]
例如,如果输入是:['AC', 'AD', 'CD'],那么我希望输出为[A,C,D]。
问题
什么是可以理解的获取方式?
【问题讨论】:
-
你的输入和输出之间的相关性是什么?您能否发布您的代码,以便我们了解您迄今为止所做的尝试?
标签: arrays python-3.x list
我有一个这样的列表['AC', 'AF', 'CF']
我希望输出为[A,C,F]
例如,如果输入是:['AC', 'AD', 'CD'],那么我希望输出为[A,C,D]。
问题
什么是可以理解的获取方式?
【问题讨论】:
标签: arrays python-3.x list
如果您要查找的只是输入中所有唯一字符的列表,您可以执行以下操作:
sorted(list(set(''.join(['AC', 'AF', 'CF']))))
这是通过将您的输入转换为单个字符串,然后将该字符串转换为一个集合来实现的,这将删除重复项。然后我们将该集合转换回列表并对其进行排序。
上面例子的输出是:
['A', 'C', 'F']
【讨论】:
你可以使用itertools:
import itertools
s = ['AC', 'AF', 'CF']
final_data = list(set(list(itertools.chain(*map(list, s)))))
输出:
['A', 'C', 'F']
【讨论】:
在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']
【讨论】: