Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么调用'str(someList)`有时会创建一个";数组";空间?_Python_String_List_Concatenation - Fatal编程技术网

Python 为什么调用'str(someList)`有时会创建一个";数组";空间?

Python 为什么调用'str(someList)`有时会创建一个";数组";空间?,python,string,list,concatenation,Python,String,List,Concatenation,playerList包含两个Player对象(分别调用str属性,“a”和“b”),并且Player实现\uuuuuuu str\uuuuu。当我将str(playerList)连接到另一个字符串上时,我希望该字符串后面附加“[a,b]”形式的内容。相反,生成的字符串附加有“[,]”。我犯了什么错误导致了这个结果 这是我写的 prompt=”然后从“+str(玩家列表)”中选择你想要攻击的对手。 我在stdout上得到了什么: "And then choose the opponent you

playerList
包含两个
Player
对象(分别调用
str
属性,
“a”
“b”
),并且
Player
实现
\uuuuuuu str\uuuuu
。当我将
str(playerList)
连接到另一个字符串上时,我希望该字符串后面附加
“[a,b]”
形式的内容。相反,生成的字符串附加有
“[,]”
。我犯了什么错误导致了这个结果

这是我写的

prompt=”然后从“+str(玩家列表)”中选择你想要攻击的对手。

我在stdout上得到了什么:

"And then choose the opponent you would like to attack from [, ]"
我想要的是:

"And then choose the opponent you would like to attack from [a,b]"

您的
\uuuu repr\uuuu
方法返回一个空字符串:

def __repr__(self):
    return str()
>>> str()
''
str()
不带参数是空字符串:

def __repr__(self):
    return str()
>>> str()
''
如果您想直接调用
\uuu str\uuu
或将
self
传递给
str()

请注意,将列表转换为字符串将包括该列表中的所有字符串作为其表示形式;
repr(stringobject)
的输出,它使用与创建此类字符串时相同的符号。列表
['a',b']
将使用该符号转换为字符串:

>>> l = ['a', 'b']
>>> l
['a', 'b']
>>> str(l)
"['a', 'b']"
>>> print str(l)
['a', 'b']
如果您真的希望包含那些不带引号的字符串,则需要执行自己的格式设置:

>>> '[{}]'.format(', '.join([str(elem) for elem in l]))
'[a, b]'
>>> print '[{}]'.format(', '.join([str(elem) for elem in l]))
[a, b]

您的
\uuuu repr\uuuu
方法返回一个空字符串:

def __repr__(self):
    return str()
>>> str()
''
str()
不带参数是空字符串:

def __repr__(self):
    return str()
>>> str()
''
如果您想直接调用
\uuu str\uuu
或将
self
传递给
str()

请注意,将列表转换为字符串将包括该列表中的所有字符串作为其表示形式;
repr(stringobject)
的输出,它使用与创建此类字符串时相同的符号。列表
['a',b']
将使用该符号转换为字符串:

>>> l = ['a', 'b']
>>> l
['a', 'b']
>>> str(l)
"['a', 'b']"
>>> print str(l)
['a', 'b']
如果您真的希望包含那些不带引号的字符串,则需要执行自己的格式设置:

>>> '[{}]'.format(', '.join([str(elem) for elem in l]))
'[a, b]'
>>> print '[{}]'.format(', '.join([str(elem) for elem in l]))
[a, b]

返回str()?不应该是自我。寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:希望更新良好?返回str()?不应该是自我。寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请看:希望更新是好的?也许你可以解释一下,当解释器显示一个列表时,它会显示列表中每个项目的repr,因此对于两元素列表,
[,]
。这就是我说的:)@Robᵩ: 是的,但是我的班车到达了我的车站,所以我不得不下车先走一会儿。:-)也许你可以解释一下,当解释器显示一个列表时,它会显示列表中每个项目的repr,因此对于两个元素的列表,
[,]
。这就是我说的:)@Robᵩ: 是的,但是我的班车到达了我的车站,所以我不得不下车先走一会儿。:-)