gpt4 book ai didi

python - 迭代时字符串被视为字符组

转载 作者:行者123 更新时间:2023-11-30 22:44:02 24 4
gpt4 key购买 nike

首先,当我发现这个问题时,我已经解决了我的问题: in python: iterate over each string in a list

最初,当我用单个字符串迭代“列表”时,我得到了我认为奇怪的行为。在这些情况下,字符串被视为一组字符,并且迭代按顺序返回字符串中的每个字符。

作为 Python 新手,我没有意识到使用 [] 和 () 定义列表之间存在严格的区别。我的列表定义使用 ()。然而,当列表包含多个字符串时,迭代将按顺序返回每个完整的字符串。举例说明:

list = ('string')
for i in list:
print i

输出:

s
t
r
i
n
g

但是如果我这样做,即向 () 组添加第二个字符串:

list = ('string','another string')
for i in list:
print i

它被视为好像我使用了 [] (正如你应该的那样)。输出:

string
another string

现在,如果我使用 [] 定义我的列表,我会得到预期的行为,所以这就是我现在正在做的事情。我只是觉得这是有趣的行为。

有人可以向我指出一些解释 Python 解释括号方式的文档,特别是相对于字符串吗?

我在 Python 文档中没有看到任何关于数据结构的内容: https://docs.python.org/3/tutorial/datastructures.html

谢谢!

最佳答案

那是因为括号不定义列表。他们有时会定义元组 (a, b),这与列表类似,但即使在您提供的代码中,它也不是元组。

('string')

是一个带括号的表达式。它的值为'string'

('string',)

是一个包含单个元素的 1 元组,即字符串 'string'

关于python - 迭代时字符串被视为字符组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com