2016-07-06 3 views
-2
print(''.join(map(str,range(1,n+1)))) 

str은 (는) 무슨 일을하고있는가? 어떻게 한 줄이 출력은 내가 어떤지도 알고 수행에 참여하지만 여전히 나는이 모든 코드파이썬 : 아무도이 한 줄 코드를 설명 할 수 있습니까?

+0

'str'은 객체 표현을 문자열로 가져 오는 함수입니다. 그래서 map은'range (1, n + 1)'의 모든 숫자를 문자열로 변환하고 그것을 연결합니다. –

+0

이 코드가 어떻게 작동하는지 배우는 가장 좋은 방법은 그것을 분해하는 것입니다. 각각의 비트를 개별적으로 시도하고 그 비트가 무엇을하는지보십시오. 또한, 여기서 가장 까다로운 것은 아무것도 없습니다. 설명서를 읽으십시오. – SiHa

+0

기본적으로' "".join ([str (i) range (1, n + 1)])')'과 같이, 각 int를 str에 캐스트하기 위해 map을 사용합니다. –

답변

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
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이 호출됩니다.

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

''가 접합하는 요소 (문자열에 문자열 서열 ​​또는 문자 스트링) 사이에 사용되는 세퍼레이터이다 map

대안

일부 밖의 원하는 리스트 통합이다. 예를 들어 :

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

str은 형태와 유형으로 변환 할 수있는 기능입니다. 따라서 map(str, list_of_integers)은이 목록을 문자열 목록으로 변환합니다. map은 입력 목록의 각 요소에 함수를 적용하여 출력 목록을 가져 오기 때문에.

그래서 문자열 목록으로 변환 된 1에서 (n + 1)까지의 범위를 가지며이 목록은 빈 슬리 터 ''과 연결되었습니다.

관련 문제