2017-03-04 1 views
0

나는 Python2.7에서이 코드를 가지고 있으며,이 코드를리스트 이해력으로 변환하고 싶다.이 코드를 어떻게 목록 이해력으로 변환합니까?

z=['b' if m==2 'a' if p==1] 

print ''.join(z) 

또는

z=['a' if p==1 'b' if ==m] 

print ''.join(z) 

이 질문이 있으면 알려 주시기 바랍니다 :

z=[] 
if p==1: 
    z.append('a') 
    if m==2: 
     z.append('b') 

print ''.join(z) 

문제는이 같은 코드를 변환 할 때 나에게 오류 (구문 오류)를 제공하다 중복. 귀하의 조언에 감사드립니다.

답변

1

이것은 까다로운 내용입니다. 나는 enumerate과 인라인 if 문을 사용하여 두 if 문 사이의 차이점을 설명하는 솔루션을 생각해 냈습니다. 솔직히 말해서, 이것을 위해리스트를 사용하면 아마 코드를 혼란스럽게 할 것이며 이미 가지고있는 if 문을 사용하는 것이 더 낫습니다.

values = ['a', 'b'] # put the append arguments in here, you can also inline this but I put it apart to make the line shorter 
z = [val for idx, val in enumerate(values) if (m==2 and p==1 if idx==1 else p==1)] 
관련 문제