如何将列表中的元组转换为列表

2024-10-02 08:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我想将元组转换为列表。 我有以下清单:

   allCombinations = [[('CS105', 'ENG101', 'GER', 'GER'), ('CS105', 'ENG101', 'GER', 'MATH101')], [('CS106', 'CS230', 'ENG102', 'GER'), ('CS106', 'CS230', 'ENG102', 'MATH120'), ('CS230', 'ENG102', 'GER', 'GER'), ('CS230', 'ENG102', 'FREE', 'MATH120'), ('CS230', 'ENG102', 'GER', 'MATH120'), ('CS107', 'CS230', 'ENG102', 'MATH120'), ('CS106', 'CS205', 'ENG102', 'GER'), ('CS107', 'CS230', 'ENG102', 'GER'), ('CS230', 'ENG102', 'GER', 'MATH101'), ('CS106', 'CS205', 'ENG102', 'MATH120'), ('', 'CS230', 'ENG102', 'GER'), ('', 'CS230', 'ENG102', 'MATH120'), ('', 'CS106', 'ENG102', 'GER'), ('CS205', 'ENG102', 'GER', 'GER'), ('', 'CS106', 'ENG102', 'MATH120'), ('CS205', 'ENG102', 'FREE', 'MATH120'), ('CS205', 'ENG102', 'GER', 'MATH120'), ('', 'CS205', 'ENG102', 'MATH120'), ('', 'CS106', 'ENG102', 'MATH101'), ('CS106', 'ENG102', 'GER', 'GER'), ('CS107', 'CS205', 'ENG102', 'GER'), ('CS205', 'ENG102', 'GER', 'MATH101'), ('CS106', 'CS107', 'ENG102', 'MATH120'), ('CS106', 'ENG102', 'GER', 'MATH120'), ('', 'CS205', 'ENG102', 'MATH101'), ('', 'CS107', 'ENG102', 'MATH120'), ('CS106', 'CS107', 'ENG102', 'GER'), ('CS107', 'CS205', 'ENG102', 'MATH120'), ('CS106', 'ENG102', 'FREE', 'MATH120'), ('', 'CS107', 'ENG102', 'MATH101'), ('CS106', 'ENG102', 'GER', 'MATH101'), ('CS107', 'ENG102', 'GER', 'GER'), ('CS107', 'ENG102', 'GER', 'MATH120'), ('CS106', 'CS215', 'ENG102', 'GER'), ('CS106', 'CS215', 'ENG102', 'MATH120'), ('CS205', 'CS230', 'ENG102', 'GER'), ('CS107', 'ENG102', 'FREE', 'MATH101'), ('CS107', 'ENG102', 'GER', 'MATH101'), ('CS205', 'CS230', 'ENG102', 'MATH120')],...]

我想把元组转换成列表。我试着这么做

for x in allCombinations:
        _all = [list(x) for x in allCombinations]
    print(_all)

还有这个

_all= [list(elem) for elem in allCombinations]

这不会改变任何事情, 还有这个

[[y for x in i for y in x] for i in allCombinations]

这给了我一个结果

[[['CS105', 'ENG101', 'GER', 'GER', 'CS105', 'ENG101', 'GER','MATH101']],...]

这不是我想要的。 我想我错过了什么

所需的输出如下所示:

[[['CS105', 'ENG101', 'GER', 'GER'], ['CS105', 'ENG101', 'GER','MATH101']],[...],...]

Tags: infreeforallgermath120allcombinationsmath101
3条回答

使用list-comprehension+map

[list(map(list, l)) for l in allCombinations]
#[[['CS105', 'ENG101', 'GER', 'GER'], ['CS105', 'ENG101', 'GER', 'MATH101']],[].. ]

@Transhuman答案很好,但你也可以使用:

[[[*x] for x in x] for x in allCombinations]
# [[['CS105', 'ENG101', 'GER', 'GER'], ['CS105', 'ENG101', 'GER', 'MATH101']], [['CS106', 'CS230', 'ENG102', 'GER'], ['CS106', 'CS230', 'ENG102', 'MATH120'], ['CS230', 'ENG102', 'GER', 'GER'], ['CS230', 'ENG102', 'FREE', 'MATH120'], ['CS230', 'ENG102', 'GER', 'MATH120'], ['CS107', 'CS230', 'ENG102', 'MATH120'], ['CS106', 'CS205', 'ENG102', 'GER'], ['CS107', 'CS230', 'ENG102', 'GER'], ['CS230', 'ENG102', 'GER', 'MATH101'], ['CS106', 'CS205', 'ENG102', 'MATH120'], ['', 'CS230', 'ENG102', 'GER'], ['', 'CS230', 'ENG102', 'MATH120'], ['', 'CS106', 'ENG102', 'GER'], ['CS205', 'ENG102', 'GER', 'GER'], ['', 'CS106', 'ENG102', 'MATH120'], ['CS205', 'ENG102', 'FREE', 'MATH120'], ['CS205', 'ENG102', 'GER', 'MATH120'], ['', 'CS205', 'ENG102', 'MATH120'], ['', 'CS106', 'ENG102', 'MATH101'], ['CS106', 'ENG102', 'GER', 'GER'], ['CS107', 'CS205', 'ENG102', 'GER'], ['CS205', 'ENG102', 'GER', 'MATH101'], ['CS106', 'CS107', 'ENG102', 'MATH120'], ['CS106', 'ENG102', 'GER', 'MATH120'], ['', 'CS205', 'ENG102', 'MATH101'], ['', 'CS107', 'ENG102', 'MATH120'], ['CS106', 'CS107', 'ENG102', 'GER'], ['CS107', 'CS205', 'ENG102', 'MATH120'], ['CS106', 'ENG102', 'FREE', 'MATH120'], ['', 'CS107', 'ENG102', 'MATH101'], ['CS106', 'ENG102', 'GER', 'MATH101'], ['CS107', 'ENG102', 'GER', 'GER'], ['CS107', 'ENG102', 'GER', 'MATH120'], ['CS106', 'CS215', 'ENG102', 'GER'], ['CS106', 'CS215', 'ENG102', 'MATH120'], ['CS205', 'CS230', 'ENG102', 'GER'], ['CS107', 'ENG102', 'FREE', 'MATH101'], ['CS107', 'ENG102', 'GER', 'MATH101'], ['CS205', 'CS230', 'ENG102', 'MATH120']]]

Demo

您可以使用嵌套列表:

>>> allCombinations = [[('CS105', 'ENG101', 'GER', 'GER'), ('CS105', 'ENG101', 'GER', 'MATH101')], [('CS105', 'ENG101', 'GER', 'GER'), ('CS105', 'ENG101', 'GER', 'MATH101')]]
>>> [[list(tup) for tup in sublst] for sublst in allCombinations]
[[['CS105', 'ENG101', 'GER', 'GER'], ['CS105', 'ENG101', 'GER', 'MATH101']], [['CS105', 'ENG101', 'GER', 'GER'], ['CS105', 'ENG101', 'GER', 'MATH101']]]

相关问题 更多 >

    热门问题