【问题标题】:List Comprehension multi line string to 2D array列表理解多行字符串到二维数组
【发布时间】:2019-05-27 18:11:47
【问题描述】:

我在解决问题时遇到了问题。我需要转换以下字符串

meciuri = """Romania 4 - 0 Franta
Italia 2 - 1 Rusia
Franta 3 - 0 Italia
Rusia 2 - 2 Romania
Romania 1 - 0 Italia
Franta 2 - 1 Rusia"""

进入一个看起来像这样的二维数组

meciuri_2darray = [['Romania', '4', '-', '0' ,'Franta'],
['Italia' ,'2' ,'-', '1', 'Rusia'], 
['Franta' ,'3' ,'-' ,'0', 'Italia'], 
['Rusia', '2', '-', '2', 'Romania'],
['Romania', '1' ,'-' ,'0' ,'Italia'],
['Franta' ,'2' ,'-' ,'1' ,'Rusia']]

我尝试了不同的变体,但我真的是二维数组和列表推导的新手。到目前为止,这是我设法做到的,但结果一点也不让我满意

meciuri_2darray = [[i for i in meciuri.split('\n')] for line in meciuri]

输出

[['R'], ['o'], ['m'], ['a'], ['n'], ['i'], ['a'], [' '], ['4'], [' '], ['-'], [' '], ['0'], [' '], ['F'], ['r'], ['a'], ['n'], ['t'], ['a'], ['', ''], ['I'], ['t'], ['a'], ['l'], ['i'], ['a'], [' '], ['2'], [' '], ['-'], [' '], ['1'], [' '], ['R'], ['u'], ['s'], ['i'], ['a'], ['', ''], ['F'], ['r'], ['a'], ['n'], ['t'],
['a'], [' '], ['3'], [' '], ['-'], [' '], ['0'], [' '], ['I'], ['t'], ['a'], ['l'], ['i'], ['a'], ['', ''], ['R'], ['u'], ['s'], ['i'], ['a'], [' '], ['2'], [' '], ['-'], [' '], ['2'], [' '], ['R'], ['o'], ['m'], ['a'], ['n'], ['i'], ['a'], ['', ''], ['R'], ['o'], ['m'], ['a'], ['n'], ['i'], ['a'], [' '], ['1'], [' '], ['-'], [' '], ['0'], [' '], ['I'], ['t'], ['a'], ['l'], ['i'], ['a'], ['', ''], ['F'], ['r'], ['a'], ['n'], ['t'], ['a'], [' '], ['2'], [' '], ['-'], [' '], ['1'], [' '], ['R'], ['u'], ['s'], ['i'], ['a']]

【问题讨论】:

  • [m.split() for m in meciuri.split('\n')] ?

标签: python arrays string list list-comprehension


【解决方案1】:
import os
meciuri = """Romania 4 - 0 Franta
Italia 2 - 1 Rusia
Franta 3 - 0 Italia
Rusia 2 - 2 Romania
Romania 1 - 0 Italia
Franta 2 - 1 Rusia"""
l=meciuri.split(os.linesep)
print([x.split(" ") for x in l])

【讨论】:

    【解决方案2】:

    您可以使用非嵌套列表推导:

    meciuri_2darray = [i.split() for i in meciuri.split('\n')]
    
    # [['Romania', '4', '-', '0', 'Franta'],
    #  ['Italia', '2', '-', '1', 'Rusia'],
    #  ['Franta', '3', '-', '0', 'Italia'],
    #  ['Rusia', '2', '-', '2', 'Romania'],
    #  ['Romania', '1', '-', '0', 'Italia'],
    #  ['Franta', '2', '-', '1', 'Rusia']]
    

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2019-09-14
      • 1970-01-01
      • 2019-02-18
      • 2020-09-02
      • 2020-09-15
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      相关资源
      最近更新 更多