在这里,我对一些代码有疑问:
def flatten_list(lst):
FinalList = []
if lst == []:
return []
else:
for x in len(lst):
if isinstance(lst(x), list) == False:
FinalList += lst(x)
else:
s = lst(x)
return FinalList += flatten_list(s)
在最后一行,存在无效的语法错误,但我不知道为什么。 对于这个特定问题的任何建议或一般建议,将不胜感激!
答案 0 :(得分:1)
+=
必须是它自己的语句,但是您正在尝试将其用作表达式。它不返回任何内容,因此Python不允许您return
。如果您希望它与其他语言一样工作,则需要使用两个语句:
FinalList += flatten_list(s)
return FinalList
答案 1 :(得分:0)
我认为您正在寻找编写一些代码来将2D列表平整为1D列表。每当项目是列表时,您都希望使用项目列表的元素扩展最终列表,这就是使用+=
运算符的原因(我想)。这是实现我想实现的示例代码;)
def flatten_list(lst):
final_list = []
if lst == []:
return []
else:
for x in range(len(lst)):
if isinstance(lst[x], list) == False:
final_list.append(lst[x])
else: # If it's a list
# final_list.extend(lst[x]) # This will also work
final_list += lst[x]
return final_list
print(flatten_list([[1,2],3,[4,5,6],7.5,'Sample']))
输出
[1, 2, 3, 4, 5, 6, 7.5, 'Sample']