繁体   English   中英

用python在一行中执行多行循环

[英]Execute multiple lines with python in one line for loop

我有一个循环附加到名为list1新列表上,并且可以正常工作,但是如何添加类似print(x)或对list1.append(...)有用的东西呢?

word="abcdefg"
list1=[]
[list1.append(word[i]) for i in range(len(word))]
print(list1)

我试过使用list1.append(word[i]);print("working"),

正如我在评论中所述, 列表推导 不仅仅用于单行执行for循环。 它们非常强大,但是您需要阅读有关内容。 您可以看一下: Python列表理解:直观解释

但是,在这种情况下,您所做的所有代码就是将字符串转换为list并打印出来。 您可以按以下方式一行执行:

>>> print(list("abcdefg"))
['a', 'b', 'c', 'd', 'e', 'f', 'g']

您可以简单地-

list1 = [word[i] for i in range(len(word))]

要么

list1 = [w for w in word]

定义一个执行“更多行代码”的函数,并在理解中使用它

word="abcdefg"
list1=[]
def add_and_print(character, container):
    container.append(character)
    print("adding", character)
[add_and_print(character, list1) for character in word]

一开始的理解应该简短易懂,避免复杂,一个条件一个调用和一个for语句应该最大-如果需要复杂的循环等,请创建一个生成器

[call(something) for something in some_container if something == foo]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM