2016-07-28 5 views
-1

튜플을 인수로 취하는 함수를 사용하고 싶습니다. 그러나 튜플 목록을 가지고 있고 함수에 튜플 목록을 제공하려고 시도 할 때마다튜플을 사용하는 함수에서 튜플 목록 사용하기

이 반환됩니다.
s = s.join(x) 
TypeError: sequence item 0: expected str instance, tuple found 

그러나 주위에 목록이없는 자체적으로 하나의 튜플 만 있으면 함수가 예상대로 작동합니다. 스스로 하나의 튜플을받는 함수에

[('abcd','1234','xyz'),('e.t.c', 'e.t.c', 'test')] 

:

이 같은 튜플의 목록을 공급할 수있는 방법이 있습니까? 이 예상대로 인쇄 형식의 문자열을 반환이 함수에 하나의 튜플을 놓을 때

def strFormat(x): 

    #Convert to string 
    s=' ' 
    s = s.join(x) 
    print(s) 

    #Split string into different parts 
    payR, dep, sal, *other, surn = s.split() 
    other = " ".join(other) 

    #Print formatting! 
    print ("{:5}, {:5} {:>10} {:10} £{:10}".format(surn , other, payR, dep, sal)) 

: - 감사합니다 :)

편집 이것은 내가에 튜플의 목록을 공급하고있는 기능입니다. 이 함수에 튜플 목록을 넣을 때 작동하지 않고 오류를 반환합니다. 위의 함수에서 위와 같은 튜플 목록을 만들려면 어떻게해야합니까?

+0

그리고 예상되는 결과는 무엇입니까? 나는 당신이'str.join()'을 호출하는 것으로 보이지만 튜플의 샘플리스트에는 문자열이 포함되어 있지 않다는 것에 주목한다. 제발 우리에게 줄래? –

+0

튜플을 피드로 변환하여 문자열로 변환 한 다음 인쇄 서식을 사용하여 결과 테이블을 깔끔하게 만듭니다. 질문에 샘플 튜플을 사용하여 실수를했습니다. 문자열의 튜플입니다. – RonB7

+0

그럼이 튜플 각각에 대해 어떻게 생각하십니까? 목록에있는 각 튜플에 대해 개별적으로 해당 함수를 호출하겠습니까? 귀하의 질문은 명확하지 않습니다. –

답변

0

별도로 당신이 목록 이해 사용할 수있는 튜플에 가입하려면 :

[delimiter.join(x) for x in list_of_tup] # delimiter should be a string 

그렇지 않으면 당신은 튜플 압축을 풀 필요를 다음 모두 가입 할 수 있습니다. 어떤 목적으로 중첩 된 목록 이해력을 사용할 수 있습니까? itertools.chain :

delimiter.join([item for tup in list_of_tup for item in tup]) 
관련 문제