2016-11-01 6 views
-2

죄송합니다. 의심 할 여지없이이 질문이 있지만 유감스럽게 생각합니다. 내가 파이썬에서 목록에서 목록을 반환하고 싶지만 그것을하려고하면, 그것은 항상 첫 번째 문을 액세스하므로 문자열로 목록을 반환하는 것 같다.목록 내부 목록 반환 - Python

def multpoly(entryList): 

    x = entryList.index(0) 

    if type(x) is list: 
     print("list") 

    if type(x) is str: 
     combined_str = ""  

     for x in entryList: 
      combined_str += x 

     return combined_str 

print(multpoly(["1", "2", "3"])) 
+1

문자열 ''1,2,3 ''이 (가) 문자열인지 묻는 중입니까? 그것은 문자열이기 때문입니다. – TigerhawkT3

+1

list를 변수 이름으로 사용하지 마십시오. 이것은 또한 파이썬에서 내장 함수의 이름이기도합니다. –

+0

예상되는 출력을 제공하십시오. – trincot

답변

0
def multipoly(l): #l not list 
    x = l[0] 
    if isinstance(x, str): 
     return ''.join(l) 
    elif isinstance(x, list): 
     return [a for sublist in l for a in sublist] 
    else: 
     raise ValueError("Not a list of strings or list of lists") 

사용 isinstance는 유형을 확인합니다. list과 같이 이미 의미가있는 이름은 사용하지 마십시오.

+0

감사합니다! 이것은 완벽하게 작동했는데, 어리석은 실수였던 목록 '목록'을 부르는 문제를 깨달았어야했습니다. 그러나, 나는 방금 파이썬을 시작했고 유형을 확인하기 위해 'type (x)'를 사용하는 방법을 배웠지 만 문제가 해결되어 대신 이것을 사용하기 시작합니다! – fdbdcbc

+0

@ MGordon0405 'isinstance'와 'type'의 유일한 차이점은 상속에 대한 행동입니다. 리스트를 확장하는 (즉, 새로운 기능을 추가 한) 클래스를 작성한다면'type (specialList) is list'는 실패하지만'isinstance (specialList, list)'는 –

+0

을 전달할 것입니다. – fdbdcbc