【问题标题】:How to conditionally split and extend inside a list comprehension?如何在列表理解中有条件地拆分和扩展?
【发布时间】:2022-11-18 04:34:37
【问题描述】:

如何转换此输入:

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

到这个输出:

['v1', 'v2', 'v3']

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

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']

尝试使用不起作用的列表理解:

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

【问题讨论】:

    标签: python python-3.x list list-comprehension


    【解决方案1】:

    尝试:

    values = ["v1,v2", "v3"]
    
    values = ",".join(values).split(",")
    print(values)
    

    印刷:

    ['v1', 'v2', 'v3']
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        最近更新 更多