python main()在shell中不执行
我想在main中运行我的flatten(li)函数,但是当我运行该模块时它没有运行。但是当我在shell中输入“flatten(li)”时它正在工作。有任何想法吗?谢谢!python main()在shell中不执行
li = [0, 2, [[2, 3], 8, 100, None, [[None]]], -2]
def flatten(li):
i = 0
while i < len(li):
"only execute if the element is a list"
while isinstance(li[i], list):
"""taking the element at index i and sets it as the
i'th part of the list. so if l[i] contains a list
it is then unrolled or 'unlisted'"""
li[i:i + 1] = li[i]
i += 1
for element in li:
if not element and not isinstance(element, int):
li.remove(element)
return li
def main():
flatten(li)
if __name__ == '__main__':
main()
你不是做与输出任何东西。我不知道你希望看到什么,但这样的事情是你想要什么:
li = [0, 2, [[2, 3], 8, 100, None, [[None]]], -2]
def flatten(li):
i = 0
while i < len(li):
while isinstance(li[i], list):
li[i:i + 1] = li[i]
i += 1
for element in li:
if not element and not isinstance(element, int):
li.remove(element)
return li
def main():
flat = flatten(li)
print(flat)
if __name__ == '__main__':
main()
非常感谢!我怎么不打印,如果我只是在壳上输入flatten(li)?另外,我的文档是否正确? –
当你输入'flatten(li)'时,你会调用'flatten'函数,它返回'li'。默认情况下,你的shell正在打印返回的值。当你调用'main'调用'flatten',它将'li'返回'main',但'main'函数对该对象没有任何作用。 'main'然后返回'None'到shell。 – Batman
非常有帮助! –
你什么也看不到,因为你没有打印酷 – Copperfield