2017-11-10 2 views
-6

방금 ​​파이썬에서 lambda 함수를 발견했습니다. 여기에 내가 파이썬에서 람다 함수 사용하기

a="ABCD" 
b=map(lambda x:a[int(x)],a) 
print(list(b)) 

을 시도 그리고이 오류 ValueError: invalid literal for int() with base 10: 'A' 을 제공하지만,이에이

[A,B,C,D]

모든 설명처럼 O/P를 기다리고 있었다. 당신이 정수에 "A"를 변환 할 수 없기 때문에

감사

+0

'람다 X를 사용할 수있다 글자를 대문자로 쓰는 .. –

+2

글씨로'int'를 부르는 이유는 무엇입니까? 당신이 기대하는 것은 무엇입니까? –

+4

왜'list (a)'가 아닌가? –

답변

1

INT (X)는, 사용자의 오류를 얻을 수

올바른 것 :

코멘트에서 언급 한 바와 같이
a="ABCD" 
b=map(lambda x:x,a) 
print(list(b)) 

의 다음과 같은 결과가 나온다 :

print(list(a)) 

아마 더 많은 어린 양 첫째 다 튜토리얼 : [(x는) INT]`이것은`lambda` 기능하지 않는 : 당신은 int에 직접 alphabates을 변환 할 수 없습니다 http://www.secnetix.de/olli/Python/lambda_functions.hawk

0

, 당신은 ord()

In [8]: a="ABCD" 

In [9]: b=map(lambda x:x,a) 

In [10]: print(list(b)) 
['A', 'B', 'C', 'D'] 
+0

값을 직접 조작 할 수 있습니다. 'ord' 함수는이를 수행합니다. –

+0

예, 맞지만 직접 알파벳으로는 @ cᴏʟᴅs not 할 수 없습니다. – Sanket