Python:任何人都能解释一下这一行代码吗?

时间:2016-07-06 09:50:23

标签: python

print(''.join(map(str,range(1,n+1))))

就像str在这里做的一样?如何在单行中输出?我知道地图和连接是什么,但我仍然不清楚整个代码

3 个答案:

答案 0 :(得分:4)

numbers_one_to_n = range(1,n+1)
numbers_as_strings = map(str, numbers_one_to_n)
numbers_joined_to_single_string = ''.join(numbers_as_strings)
print(numbers_joined_to_single_string)

答案 1 :(得分:1)

print(''.join(map(str,range(1,n+1))))

你说你知道map的作用吗?文档说:

map(function, iterable, ...)
Return an iterator that applies function to every item of iterable, yielding the result.

所以str就是这个功能。 iterable是整数的range(在Python 3中,这是一个range对象)

str返回从其参数生成的字符串对象。

因此,为范围中的每个整数调用str

map的替代方案是列表理解,有些人更喜欢:

print(''.join([str(i) for i in range(1,n+1)]))

答案 2 :(得分:0)

''是一个分隔符,用于连接元素之间(字符串序列中的字符串或字符串中的字符)。例如:

>>> '-'.join(('foo', 'bar'))
'foo-bar'
>>> '-'.join('bar')
'b-a-r'

str是一种类型和转换为此类型的函数。 因此,map(str, list_of_integers)将此列表转换为字符串列表。因为map将函数应用于输入列表的每个元素以获取输出列表。

因此,我们将范围从1到(n + 1),已转换为字符串列表,然后此列表已与空切刀''连接。