首页 > 解决方案 > python将复杂的列表列表转换为字符串

问题描述

我有一个看起来像这样的复杂列表:

[[['MARIA DUPONT',
   ' infos : ',
   [' age = 28',
    ' yeux = bleus',
    ' sexe = femme']],
  [' + ']],
 [['PATRICK MARTIN',
   ' infos : ',
   [' age = 53',
    ' yeux = marrons',
    ' sexe = homme']],
  [' + ']],
 [['JULIE SMITH',
   ' infos : ',
   [' age = 17',
    'yeux = verts',
    'sexe = femme']],
  [' fin ']]]

我正在尝试将其转换为字符串。最后我想打印:

MARIA DUPONT,
 infos :
 age = 28 
 yeux = bleus 
 sexe = femme 

 + 

PATRICK MARTIN
 infos :
 age = 53
 yeux = marrons
 sexe = homme

 + 

JULIE SMITH
 infos :
 age = 17
 yeux = verts
 sexe = femme

 fin

我的真实数据更复杂,我的列表进入第 5 级。所以我正在寻找一种方法来解决我解释的问题,以便能够对其进行调整并将其应用于我的真实数据。

我正在尝试 ''.join(list)''.join(x for x in list)

但在这两种情况下我都有错误TypeError: list indices must be integers or slices, not list

我尝试了其他方法,但现在我很困惑,我没有找到一个好的解决方案来实现我的目标。

任何帮助将不胜感激,并在此先感谢。(对不起我的英语不好!)

标签: pythonpython-3.xlist

解决方案


编写一个递归函数以进入您的列表,如下所示:

def print_data(input_list):

    for obj in input_list:
        if isinstance(obj, list):
            print_data(obj)
        else:
            print(obj)



input_list = [[['MARIA DUPONT',
                    ' infos : ',
                    [' age = 28',
                     ' yeux = bleus',
                     ' sexe = femme']],
                   [' + ']],
                  [['PATRICK MARTIN',
                    ' infos : ',
                    [' age = 53',
                     ' yeux = marrons',
                     ' sexe = homme']],
                   [' + ']],
                  [['JULIE SMITH',
                    ' infos : ',
                    [' age = 17',
                     'yeux = verts',
                     'sexe = femme']],
                   [' fin ']]]
print_data(input_list)

推荐阅读