为什么当从int到string的两个强制转换似乎做同样的事情时,这两个print语句会产生不同的结果?我错过了什么?
board是一个整数列表
{{1}}
答案 0 :(得分:3)
print(" ".join(map(str, board[:3])))
将切片board
的每个项目映射到一个文字整数,并将其与空格连接(可能是您想要的,也是正确的事情)
print(' '.join(str(board[:3])))
将list
转换为表示(带括号和全部),然后在每个字符之间插入一个空格。不是你想要的。
答案 1 :(得分:1)
清楚地了解代码中究竟发生了什么:
第一种情况:
In [4]: map(str,boards[:3])
Out[4]: ['0', '1', '2']
In [5]: ''.join(map(str,boards[:3]))
Out[5]: '012'
将列表中的所有元素转换为字符串格式,当您使用join
时,它将加入这些元素。
第二种情况:
In [6]: str(boards[:3])
Out[6]: '[0, 1, 2]'
In [7]: ''.join(str(boards[:3]))
Out[7]: '[0, 1, 2]'
首先将整个列表转换为列表,并且在字符串上使用join时,它将提供相同的内容。