Python 中 zip 类型的元素串联

Chr*_*580 0 python string zip list concatenation

在 Python 中,我收到了这样的 zip 类型作为输入:

[
    ('ef', ['c', 'b', 'a']),
    ('a', ['b']),
    ('ab', ['c']),
    ('b', ['c']),
    ('c', ['c', 'a']),
]
Run Code Online (Sandbox Code Playgroud)

我必须连接同一项目中的元素并创建一个新的字符串列表。预期输出是:

['efc', 'efb', 'efa', 'ab', 'abc', 'bc', 'cc', 'ca']
Run Code Online (Sandbox Code Playgroud)

请注意,第一个元素生成三个不同的字符串,最后一个元素生成两个字符串。问题在于这些项目,因为它有多个元素需要连接。我尝试使用 join 命令,但它不起作用。任何帮助,将不胜感激。

Sam*_*ord 8

使用嵌套理解:

>>> zipped = [
    ('ef', ['c', 'b', 'a']),
    ('a', ['b']),
    ('ab', ['c']),
    ('b', ['c']),
    ('c', ['c', 'a']),
]
>>> [pre + s for pre, suf in zipped for s in suf]
['efc', 'efb', 'efa', 'ab', 'abc', 'bc', 'cc', 'ca']
Run Code Online (Sandbox Code Playgroud)

如果乍一看理解没有意义,请将其视为嵌套for循环:

>>> for pre, suf in zipped:
...     for s in suf:
...         print(pre + s)
... 
efc
efb
efa
ab
abc
bc
cc
ca
Run Code Online (Sandbox Code Playgroud)