Python:为什么返回字符串会将其更改为列表(长度为一)

问题描述 投票:0回答:1

我正在方法中创建一个字符串并返回它。但我返回的是一个列表而不是字符串。

def method():
    string1 = "hallo1 \nhallo2"
    print("string1 :")
    print(type(string1))
    print(string1)
    return[string1]    

string2=method()
print("string2 :")
print(type(string2))
print(string2)

我怀疑 string1 和 string2 都是字符串类型并且相同,但我得到以下输出:

string1 :
<class 'str'>
hallo1
hallo2
string2 :
<class 'list'>
['hallo1 \nhallo2']

怀疑/想要的输出:

string1 :
<class 'str'>
hallo1
hallo2
string2 :
<class 'str'>
hallo1
hallo2

我确实有编码经验,但我已经 10 年没有上过学了,从那以后就没有写过太多代码,而且我也没有真正的 Python 经验,所以我很可能错过了一些简单/愚蠢的东西。

我的谷歌技能让我一无所获,所以我希望这里有人可以阐明正在发生的事情。

python list return
1个回答
1
投票

正如您在代码中编写的评论中所提到的

return [string1]

这指示 python 返回一个
list
,其中单个元素
string1
作为
method
的返回值。

因此,它的类型是

list
而不是
string
如果您在列表中放入了第二个项目,则打印输出将有更大的差异以突出显示这种差异。

© www.soinside.com 2019 - 2024. All rights reserved.