如何在列表理解中有条件地分割和扩展?

Har*_*ekh 1 python list-comprehension list python-3.x

如何转换此输入:

values = ['v1,v2', 'v3']
Run Code Online (Sandbox Code Playgroud)

到这个输出:

['v1', 'v2', 'v3']
Run Code Online (Sandbox Code Playgroud)

尝试没有有效的列表理解:

values = ['v1,v2', 'v3']
parsed_values = []

for v in values:
    if ',' in v:
        parsed_values.extend(v.split(','))
    else:
        parsed_values.append(v)

print(parsed_values)    # ['v1', 'v2', 'v3']
Run Code Online (Sandbox Code Playgroud)

尝试列表理解不起作用:

parsed_values = [_ for _ in [v.split(',') if ',' in v else v for v in values]]
# [['v1', 'v2'], 'v3']
Run Code Online (Sandbox Code Playgroud)

azr*_*zro 5

你不在乎是否有逗号,拆分它总是会给出一个可以迭代的列表

values = ['v1,v2', 'v3']
parsed_values = [word for value in values for word in value.split(",")]
print(parsed_values)
# ['v1', 'v2', 'v3']
Run Code Online (Sandbox Code Playgroud)