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

时间:2020-04-27 05:34:06

标签: python-3.x list for-loop tuples

在代码的最后一步,我应该将自己喜欢的笔记本电脑改回已经降序排列的列表。

元组列表中的元组表示(ranking score, (name, company, screen size))

例如:

tuple_lst = [(20,('Elitebook','HP',13)),(10,('SurfacePro','Microsoft',13)),(5,('MacBook Air','Apple',13))]

我的预期输出:

[['Elitebook','HP',13],['SurfacePro','Microsoft',13],['MacBook Air','Apple',13]]

我尝试使用list()并创建for循环,但仍然失败。

非常感谢您的帮助。

5 个答案:

答案 0 :(得分:3)

请在下面使用列表理解功能进行尝试:

tuple_lst = [(20,('Elitebook','HP',13)),(10,('SurfacePro','Microsoft',13)),(5,('MacBook Air','Apple',13))]

print([list(x[1]) for x in tuple_lst])

答案 1 :(得分:2)

你做类似的事情

new_lst = [list(i[1]) for i in tuple_lst]

输出

[['Elitebook', 'HP', 13],
 ['SurfacePro', 'Microsoft', 13],
 ['MacBook Air', 'Apple', 13]]

答案 2 :(得分:1)

尝试一下:

tuple_lst = [(20,('Elitebook','HP',13)),(10,('SurfacePro','Microsoft',13)),(5,('MacBook Air','Apple',13))]
res = []

for tup in tuple_lst:
    res.append(list(tup[1]))

print(res)

输出将是:-

[['Elitebook','HP',13],['SurfacePro','Microsoft',13],['MacBook Air','Apple',13]]

答案 3 :(得分:1)

一种不错的方法是使用元组拆包:

>>> tuple_lst = [(20,('Elitebook','HP',13)),(10,('SurfacePro','Microsoft',13)),(5,('MacBook Air','Apple',13))]
>>> [list(y) for _, y in tuple_lst]
[['Elitebook', 'HP', 13], ['SurfacePro', 'Microsoft', 13], ['MacBook Air', 'Apple', 13]]

答案 4 :(得分:0)

这是您问题的一线解决方案:

    tuple_lst = [(20,('Elitebook','HP',13)),(10,('SurfacePro','Microsoft',13)),(5,('MacBook Air','Apple',13))]
    tuple_lst = list(map(lambda x:list(x[1]),tuple_lst))
    print(tuple_lst)

输出: [['Elitebook','HP',13],['SurfacePro','Microsoft',13],['MacBook Air','Apple',13]]

相关问题