使用列表理解将字符串列表转换为列表列表

问题描述

我试过了:

l = ['cat','dog','fish']
ll = [list(x) for x in l]
print(ll)

我得到了这个

[['c','a','t'],['d','o','g'],['f','i','s','h']]

我需要的是

[['cat'],['dog'],['fish']]

解决方法

而不是简单地调用 list 构造函数(将字符串分解为其字符):

ll = [[x] for x in l]

对于 l 的元素的每次迭代,这将创建一个嵌套列表,其中包含单个项目 x

,

你可以试试这个:

l = ['cat','dog','fish']
ll = [[x] for x in l]
print(ll)

这会将每个元素转换为数组。您使用 list() 函数所做的是将单词转换为 字符 数组。

,

只返回一个列表而不是拆分字符串:

l = ['cat','fish']
ll = [[x] for x in l]
print(ll)
,

如果您要查找的输出实际上是

[['cat'],['dog'],['fish']]

那么上面提供的解决方案是使用方括号包装器进行列表推导:

l = ['cat','fish']
ll = [[x] for x in l]
print(ll)

输出:

[[cat],[dog],[fish]]

但是,如果您要查找的输出与您在帖子中显示的完全相同,则您需要使用格式化的字符串:

l = ['cat','fish']
ll = f"[[{'] ['.join(l)}]]"
print(ll)

输出:

[[cat],[fish]]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...