在迭代只包含1个字符串的元组时,我注意到了一种奇怪的行为:
foo = ("hello")
for entry in foo:
print(entry)
输出:
h
e
l
l
o
但我希望这里只迭代一次,输出"你好"连续。
如果我的tupple包含2个条目,那就是发生了什么:
foo = ("hello", "world!")
for entry in foo:
print(entry)
输出:
hello
world!
这是CPython实施中的错误吗? 即使更奇怪,如果我使用列表而不是元组,这不会发生:
foo = ["hello"]
for entry in foo:
print(entry)
输出:
hello
答案 0 :(得分:0)
你有一个字符串而不是一个元组:
>>> type(('hello'))
<class 'str'>
>>> type(('hello',))
<class 'tuple'>
答案 1 :(得分:0)
("hello")
不是一个元组 - 它是一个用括号括起来的字符串,在这种情况下没有意义。如果你想要一个单元素元组,你需要一个逗号后面的值:
foo = ("hello",)
# Here--------^