【问题标题】:Convert list into list of lists将列表转换为列表列表
【发布时间】:2016-11-30 23:35:13
【问题描述】:

我想将列表转换为列表列表。示例:

my_list = ['banana', 'mango', 'apple']

我想要:

my_list = [['banana'], ['mango'], ['apple']]

我试过了:

list(list(my_list))

【问题讨论】:

标签: python list


【解决方案1】:

使用列表理解

[[i] for i in lst]

它遍历列表中的每个项目并将该项目放入一个新列表中。

例子:

>>> lst = ['banana', 'mango', 'apple']
>>> [[i] for i in lst]
[['banana'], ['mango'], ['apple']]

如果你对每个项目应用list func,它会将每个字符串格式的项目转换为字符串列表。

>>> [list(i) for i in lst]
[['b', 'a', 'n', 'a', 'n', 'a'], ['m', 'a', 'n', 'g', 'o'], ['a', 'p', 'p', 'l', 'e']]
>>> 

【讨论】:

  • 地图呢?我喜欢这个map(list, lst)
  • 大声笑你能详细说明一下吗?
  • @khredos 检查地图的答案
  • @khredos map 将像 [list(i) for i in lst] 一样工作
  • @RahulKP 你是对的,但我的建议不那么冗长。我只是想知道是什么让它成为一个坏主意。我觉得我可能已经知道了,这与 python 2 vs python 3 中的地图表示有关
【解决方案2】:

试试这个衬垫:-

map(lambda x:[x], my_list)

结果

In [1]: map(lambda x:[x], my_list)
Out[1]: [['banana'], ['mango'], ['apple']]

【讨论】:

  • 虽然不是pythonic,但这是一个正确的答案。不知道为什么这被否决了。可以更简洁:map(list, my_list).
  • @SuperSaiyan 地图比 list comp 慢一点。
  • @AvinashRaj 我更喜欢可读性和优雅,而不是那种性质的微优化。如果这些纳秒很有价值,我可能会选择其他语言。
  • @UltraInstinct, map(list, my_list) not 工作。 list(1) 将提供TypeError
  • @aydow 你是如何定义你的列表的my_list
【解决方案3】:
    lst = ['banana', 'mango', 'apple']
    lst_of_lst = []
    for i in lst:
        spl = i.split(',')
        lst_of_lst.append(spl)
    print(lst_of_lst)

首先创建一个空列表,然后遍历您的列表。拆分每个列表并将它们附加到您的空列表中。

【讨论】:

  • 您不需要拆分您正在迭代的原始列表的元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 2018-12-19
  • 2021-02-16
  • 1970-01-01
  • 2018-01-06
相关资源
最近更新 更多