我有一个附加到名为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")
和,
答案 0 :(得分:1)
正如我在评论中所说, List Comprehensions 不是只是用于在单行中执行for
循环。它们非常强大,但你需要阅读它。您可以查看:Python List Comprehensions: Explained Visually。
但是在这种特殊情况下,您的所有代码都是将字符串转换为列表并打印它。您可以在一行中执行以下操作:
>>> print(list("abcdefg"))
['a', 'b', 'c', 'd', 'e', 'f', 'g']
答案 1 :(得分:0)
你可以这么做 -
list1 = [word[i] for i in range(len(word))]
或
list1 = [w for w in word]
答案 2 :(得分:-1)
定义一个执行“更多代码行”并在理解中使用它的函数
word="abcdefg"
list1=[]
def add_and_print(character, container):
container.append(character)
print("adding", character)
[add_and_print(character, list1) for character in word]
理解应该是简短易读的,避免复杂的,一个条件一个调用,一个语句应该是最大的 - 如果你需要一个复杂的循环等,创建一个生成器
[call(something) for something in some_container if something == foo]