这条线是什么解释的

时间:2017-07-31 19:53:20

标签: python python-2.7 python-3.x

这是一段python代码,我试图找出如何计算值并将其存储在变量string_width中。

string_width =len(" ".join(map(str,range(num,0,-1)))+" ".join(map(str,range(2,num+1))))

任何解释都会有所帮助。

1 个答案:

答案 0 :(得分:0)

实际输出的内容非常依赖于num等于什么,但要了解这一特定的代码行,您必须细分各个函数。

首先,在内部有两个使用map函数用字符串创建的可迭代地图。

第一个是变量num中的所有数字,倒数到0,非包含。因此,如果num为4,则此地图中将包含4,3,2和1。

第二张地图从2开始,最多计为num + 1,不包括在内。因此,如果num为4,则地图中将为2,3和4。

接下来,两个地图都用空格连接,因此每个地图都变成一个字符串,其每个值之间都有空格。上一个示例中的第一个地图为"4 3 2 1",第二个地图为"2 3 4"。 +然后将这两个字符串连接在一起,使它们成为一个字符串,这将来自我们的示例"4 3 2 12 3 4"

最后,len找到这个组合字符串的长度,并将该值保存到string_width,在我们的示例中为12,因为这是有多少个字符(它计算空格)。