我有一张单子,我想把每一张都列成正方形。
这就是我所做的
def square(x):
return x*x
numbers = [1,2,3,4,5,6]
squares = map(square, numbers)
squares_as_strings = str(squares)
print(','.join(squares_as_strings))但答案是
[,1,,, ,4,,, ,9,,, ,1,6,,, ,2,5,,, ,3,6,]而不是
[1,4,9,16,25,36]发布于 2016-08-27 04:10:10
映射square函数,但不是映射str函数。您的squares_as_strings是整个列表中的一个字符串。
将str(squares)更改为map(str, squares)。
发布于 2016-08-27 04:04:07
只要用简单的列表理解就可以解决。
squares = [i*i for i in numbers]或者,使用地图:
squares = map(lambda x:x*x,numbers)发布于 2016-08-27 04:08:59
问题就在以下几个方面:
squares_as_strings = str(squares)
print(','.join(squares_as_strings))将str应用于squares数组并不会使每个数字成为字符串。相反,它给出了这个- '[1, 2, 3]',它是一个字符串,而不是您想要的字符串数组。
现在,您是join-ing it,它在每个字符之间生成一个逗号。
你应该做的是:
squares = map(str, map(square, numbers))这将使squares数组的每个元素都成为一个字符串。然后用你的加入。
def square(x):
return x * x
nums = [1, 2, 3]
squares = map(str, map(square, nums))
print(','.join(squares))https://stackoverflow.com/questions/39177332
复制相似问题