2017-12-31 43 views
0

list1이라는 새 목록에 추가하는 루프가 있고 작동하지만, 또는 list1.append(...)과 같은 유용한 것을 추가하려면 어떻게해야합니까?루프를 위해 한 줄에 파이썬으로 여러 줄 실행

word="abcdefg" 
list1=[] 
[list1.append(word[i]) for i in range(len(word))] 
print(list1) 

내가 list1.append(word[i]);print("working"),

+2

목록 이해가 루프 실행하기위한 것이 아닙니다 발전기를 만들 한 줄에, 당신은 그것을 완전히 잘못하고 있습니다. 당신은 이해력에 대해 더 읽어야합니다. –

+0

정확히 무엇을 의미합니까? * "유용한"* 무엇입니까? 당신은 어떤 결과물을 기대 했습니까?! * 단지'print (list (word)) '가 아닌가? – jonrsharpe

+0

이 코드는 예제 코드입니다 (시도해보십시오) – Tim

답변

1

, 목록 함축 are not 루프를 한 줄로 실행하기 위해 단지. 그들은 매우 강력하지만 그것에 대해 읽을 필요가 있습니다. 다음을보십시오 : Python List Comprehensions: Explained Visually.

그러나이 경우 코드에서 수행하는 모든 작업은 문자열을 목록으로 변환하여 인쇄하는 것입니다.

>>> print(list("abcdefg")) 
['a', 'b', 'c', 'd', 'e', 'f', 'g'] 
0

와 함께 사용하여 시도했다 당신은 간단하게 할 수있는 -

list1 = [word[i] for i in range(len(word))] 

또는

내가 코멘트에 명시된 바와 같이
list1 = [w for w in word] 
+0

그래서 w --here-에 대한 인쇄를 추가 할 수 없습니다 ..? – Tim

+0

음, 그럼이 경우 Moinuddin의 대답이 더 적합합니다. –

-1

"코드의 더 라인"을 수행하는 함수를 정의하고

word="abcdefg" 
list1=[] 
def add_and_print(character, container): 
    container.append(character) 
    print("adding", character) 
[add_and_print(character, list1) for character in word] 

함축가 짧고에서 쉽게 읽을 수 있어야 이해에서 사용 : 같이 한 줄에 그것을 할 수 있습니다 우선은, 최대해야 문에 대한 복잡한 하나, 하나의 조건 일 전화 및 하나를 피하기 - 당신이 복잡한 등을 반복해야하는 경우,

[call(something) for something in some_container if something == foo] 
관련 문제