Skip to main content
 首页 » 编程设计

python之如何将字符串列表转换为字符串中各个字符的子列表列表

2025年05月04日21落叶无声

所以我开始:

['BLUE', 'ORANGE', 'YELLOW', 'GREEN', 'BLACK', 'PURPLE', 'BROWN'] 

我想要:

[['B', 'L', 'U', 'E'], ['O', 'R', 'A', 'N', 'G', 'E'], ['Y', 'E', 'L', 'L', 'O', 'W'], ['G', 'R', 'E', 'E', 'N'], ['B','L', 'A', 'C', 'K'], ['P', 'U', 'R', 'P', 'L', 'E'], ['B', 'R', 'O', 'W','N']] 

我试过这个,因为它看起来会产生我想要的结果,但它一直告诉我有错误。 AttributeError: 'NoneType' 对象没有属性 'append':

first_list = ['BLUE', 'ORANGE', 'YELLOW', 'GREEN', 'BLACK', 'PURPLE', 'BROWN'] 
list_1 = [] 
 
for i in range (len(first_list)): 
    list_1 = list_1.append(list(first_list[i])) 
 
return list_1 

我一直在使用“.append”时遇到问题,并在其他迭代中继续使用“+”,但这只会给我一个包含所有字符的长列表,而不是字符子列表的列表。感谢您提供任何帮助或建议。

请您参考如下方法:

内置list()函数从可迭代对象创建一个列表。由于字符串是一个可迭代对象,我们可以将它传递给 list() 以创建单个字符的列表。要为每个单词执行此操作,我们可以使用 list comprehension :

>>> words = ['BLUE', 'ORANGE', 'YELLOW', 'GREEN', 'BLACK', 'PURPLE', 'BROWN'] 
>>> [list(word) for word in words] 
[['B', 'L', 'U', 'E'], ['O', 'R', 'A', 'N', 'G', 'E'], ['Y', 'E', 'L', 'L', 'O', 'W'], ['G', 'R', 'E', 'E', 'N'], ['B', 'L', 'A', 'C', 'K'], ['P', 'U', 'R', 'P', 'L', 'E'], ['B', 'R', 'O', 'W', 'N']] 

编辑:您得到的属性错误是因为列表的 append() 方法返回 None。由于您将方法的输出分配给 list1 变量,因此您在循环中第一次用 None 覆盖了列表。由于 None 没有 append 方法,因此在下次循环时您会收到错误。删除此分配会使您的代码正常工作:

>>> first_list = ['BLUE', 'ORANGE', 'YELLOW', 'GREEN', 'BLACK', 'PURPLE', 'BROWN'] 
>>> list_1 = [] 
>>> for i in range (len(first_list)): 
...     list_1.append(list(first_list[i])) 
...  
>>> list_1 
[['B', 'L', 'U', 'E'], ['O', 'R', 'A', 'N', 'G', 'E'], ['Y', 'E', 'L', 'L', 'O', 'W'], ['G', 'R', 'E', 'E', 'N'], ['B', 'L', 'A', 'C', 'K'], ['P', 'U', 'R', 'P', 'L', 'E'], ['B', 'R', 'O', 'W', 'N']]