所以我开始:
['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']]
