2011-01-21 5 views
1

항목 사이에 쉼표를 추가하여 목록을 반복하고 싶습니다. 이것을 작성하는 더 쉬운 방법이 있어야합니다. 그래서 반복해서 반복하는 대신 모든 태그를 한 번에 꺼내기 만하면됩니다.항목 사이에 쉼표를 추가하는 python for

for top_item in items.get_top_tags(): 
    tag1 = top_item.item.get_name(0) 
for top_item in items.get_top_tags(1): 
    tag2 = top_item.item.get_name() 
for top_item in items.get_top_tags(2): 
    tag3 = top_item.item.get_name() 
for top_item in items.get_top_tags(3): 
    tag4 = top_item.item.get_name() 
for top_item in items.get_top_tags(4): 
    tag5 = top_item.item.get_name() 

tags = (tag1 + ',' + tag2 + ',' + tag3 + ',' + tag4 + ',' + tag5 

)

답변

2

같은 것이 거기에 하나의 항목 목록을 반환하려고? 내가 정확히이 예제의 첫 번째 비트에서 일을하려고 모르겠어요

# 'n' is the number of tags you'll be returning, I suppose 
', '.join(items.get_top_tags(i)[0].get_name() for i in range(n)) 
+0

' ','.join (items.get_top_tags (I) [0] .get_name()에 대한에게 전 범위 (N)에서) ' –

+0

에게 get_top_tags 반환하지 않는 경우, 아래의 사용의 예는 목록 (아마도 생성자), 다음 (items.get_top_tags (i)). get_name()을 사용할 수 있습니다. –

+0

@Fred : 고마워. :) 내 머리 속에서 생각하고있을 때 방금 썼다. 대괄호가 불필요하다는 것을 깨닫기 위해 다시보아야했습니다. – elo80ka

0

items.get_top_tags() 것 같다 ','.join(yourList)

1

하지만 난 당신이 같은 뭔가를 대체 할 수있는 의심 : 그렇다면,이 시도

tag_items = items.get_top_tags(4) 

이 태그 항목의 일종의 컬렉션 (예 : 목록 또는 튜플)을 제공 할 것입니다.

당신은 당신의 태그 이름의 목록을 얻을 수있는 list comprehension을 할 수있는 :

tag_names = [tag.item.get_name() for tag in tag_items] 

는 마지막으로 다음 str.join 방법을 사용하여 쉼표로 구분 된 문자열로 이름의 목록을 돌 수 있었다.

tags = ','.join([tag1, tag2, tag3, tag4, tag5) 
관련 문제