Python yield返回字符而不是单元素元组中的字符串

时间:2010-08-18 10:55:11

标签: python yield

我正在使用yield来处理列表的每个元素。但是,如果元组只有一个字符串元素,yield将返回字符串的字符,而不是整个字符串:

self.commands = ("command1")
...
for command in self.commands:
        yield command            # returns 'c' not 'command1'

我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:6)

只有1个元素的元组应为written with a trailing comma

self.commands = ("command1",)

答案 1 :(得分:0)

self.commands = ["command1"]

你从未告诉循环你有一个列表,所以它将字符串视为序列。

编辑:或者您可以按照建议修改元组...我假设您要使用列表而不是元组。