【发布时间】:2016-06-17 14:28:38
【问题描述】:
在迭代仅包含 1 个字符串的元组时,我注意到一个奇怪的行为:
foo = ("hello")
for entry in foo:
print(entry)
输出:
h
e
l
l
o
但我希望这里只迭代一次,并连续输出“hello”。
如果我的元组包含 2 个条目,那就是发生了什么:
foo = ("hello", "world!")
for entry in foo:
print(entry)
输出:
hello
world!
这是 CPython 实现中的错误吗? 更奇怪的是,如果我使用列表而不是元组,这不会发生:
foo = ["hello"]
for entry in foo:
print(entry)
输出:
hello
【问题讨论】:
-
('hello')不是包含一个字符串的元组。这只是一个字符串。试试print(type(foo))。 -
要扩展 jonrsharpes 注释,定义 1 元素元组的正确方法是 ('hello',)
-
foo = 'hello',就足够了。
标签: python string python-3.x tuples