Python 如何更改嵌套列表';将列表转换成字符串?
例如,如果我的嵌套列表是:Python 如何更改嵌套列表';将列表转换成字符串?,python,Python,例如,如果我的嵌套列表是: [['2HC'], ['4BB'], ['4BB'], ['2HC']] 我如何让['2HC']引用'A'和['4BB']引用'B',这样我的结果将是: ['A', 'B', 'B', 'A'] ['A', 'B', 'B', 'A'] 输出: 输出 ['A', 'B', 'B', 'A'] 您可以展平列表以使其更简单,然后使用简单的转换映射: from itertools import chain nested_vs = [['2HC'], ['4BB']
[['2HC'], ['4BB'], ['4BB'], ['2HC']]
我如何让['2HC']
引用'A'
和['4BB']
引用'B'
,这样我的结果将是:
['A', 'B', 'B', 'A']
['A', 'B', 'B', 'A']
输出:
输出
['A', 'B', 'B', 'A']
您可以展平列表以使其更简单,然后使用简单的转换映射:
from itertools import chain
nested_vs = [['2HC'], ['4BB'], ['4BB'], ['2HC']]
# flatten
vs = chain.from_iterable(nested_vs)
# translate
translations = {'2HC' : 'A', '4BB': 'B'}
translated = list(map(translations.get, vs))
现在,翻译后的保持:
['A', 'B', 'B', 'A']
此问题的itertools
解决方案-
data = [['2HC',], ['4BB'], ['4BB'], ['2HC']]
mapping = {'2HC' : 'A', '4BB': 'B'}
l = [mapping[i] for i in itertools.chain.from_iterable(data)]
itertools
的好处是,即使内部列表包含多个元素,它也会将列表数据转换为平面列表
例如,如果列表数据
为-
[[2HC]、[2HC']、[4BB']、[4BB']、[2HC']
我们仍然可以得到正确的输出。您尝试过任何脚本吗?如果是的话,你能把它贴在这里吗?
from itertools import chain
nested_vs = [['2HC'], ['4BB'], ['4BB'], ['2HC']]
# flatten
vs = chain.from_iterable(nested_vs)
# translate
translations = {'2HC' : 'A', '4BB': 'B'}
translated = list(map(translations.get, vs))
['A', 'B', 'B', 'A']
data = [['2HC',], ['4BB'], ['4BB'], ['2HC']]
mapping = {'2HC' : 'A', '4BB': 'B'}
l = [mapping[i] for i in itertools.chain.from_iterable(data)]