迭代通过python字符串数组会产生意外的输出

时间:2014-12-11 10:08:09

标签: python

我正在调试一些python代码,并且作为任何begginer,我正在使用print语句。我把问题缩小到:

paths = ("../somepath") #is this not how you declare an array/list?
for path in paths:
    print path

我希望打印出整个字符串,但只有.。因为我计划扩展它以覆盖更多路径,所以似乎

paths = ("../somepath", "../someotherpath")

修复问题并正确打印出两个字符串。

我假设初始版本将字符串视为一个字符数组(或者也许只是我说的C ++)并且只打印出字符。?... ??

我仍然想知道为什么会这样。

3 个答案:

答案 0 :(得分:5)

("../somepath")

只不过是括号中的字符串。因此,它与"../somepath"相同。由于Python的for循环可以遍历任何可迭代,并且字符串碰巧是可迭代的,所以它一次打印一个字符。

要创建包含一个元素的元组,请在末尾使用逗号

("../somepath",)

如果要创建列表,则需要使用方括号,例如

["../somepath"]

答案 1 :(得分:0)

paths = ["../somepath","abc"]

这样您就可以创建list.Now您的代码将起作用。

paths = ("../somepath", "../someotherpath")这就形成了一个元组。这又是一种不可变的列表。

答案 2 :(得分:0)

测试它,输出是每行一个字符

所以每个角色都打印一个字符

获得你想要的东西

# your code goes here
paths = ['../somepath'] #is this not how you declare an array/list?
for path in paths:
    print path