为什么这个Python转换对于map和没有map的行为有所不同

时间:2017-07-03 08:27:05

标签: python string dictionary casting int

为什么当从int到string的两个强制转换似乎做同样的事情时,这两个print语句会产生不同的结果?我错过了什么?

board是一个整数列表

{{1}}

2 个答案:

答案 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时,它将提供相同的内容。