2012-04-22 2 views
3

가입 (문자열이 필러입니다 ... 내 실제 코드는 이들에 대한 알 수없는 값이) (이 예제에서는 '2'문자열) <strong> </strong> 태그. 다른 모든 사람이 /를 가지지 않기 때문에 나는 '<strong>'.join(list)을 할 수 없다는 점에 실망합니다. 이것은 내가 생각할 수있는 유일한 접근 방법이지만 깃발을 사용하면 나를 귀찮게합니다 ... 그리고이 문제에 대해 Google 컴퓨터에서 다른 것을 찾지 못하는 것 같습니다.쉽게 대체 구분 기호가 내가 그렇게 같은 튜플의 목록을

def addStrongs(tuple): 
    flag = False 
    return_string = "" 
    for string in tuple: 
    if flag : 
     return_string += "<strong>" 
    return_string += string 
    if flag : 
     return_string += "</strong>" 
    flag = not flag 
    return return_string 

formatted_list = map(addStrongs, list) 

버그가 있으면 사과드립니다. 아직 Python을 처음 사용합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 나는 이것이 다른 영역에서도 유용 할 수 있다고 생각합니다. 왼쪽/오른쪽 따옴표를 추가하는 것과 같습니다.

답변

5
>>> tuple = ('one', 'two', 'one', 'two', 'one') 
>>> ['<strong>%s</strong>' % tuple[i] if i%2 else tuple[i] for i in range(len(tuple))] 
['one', '<strong>two</strong>', 'one', '<strong>two</strong>', 'one'] 
+0

. * 15 자로 채우기 * – dm03514

0

enumerate도 사용할 수 있습니다. 나에게 그것은 단지 청결 해 보인다.

tuple = ('one', 'two', 'one', 'two', 'one') 
['<strong>%s</strong>' % x if i%2 else x for i, x in enumerate(tuple)] 
1

약간 더 파이썬의 unbeli 대답보다는 :

item = ('one', 'two', 'one', 'two', 'one') 
['<strong>%s</strong>' % elem if i % 2 else elem for i, elem in enumerate(item)] 
4
from itertools import cycle 
xs = ('one', 'two', 'one', 'two', 'one') 
print [t % x for x, t in zip(xs, cycle(['<strong>%s</strong>', '%s']))] 

는 "다른 모든"보다 더 복잡한 패턴을 적용 할 수 있습니다 cycle 사용.

+0

좋은 하나를 쓰기에 대한

a = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i') formats = ['%s', '<strong>%s</strong>'] print [formats[n % len(formats)] % s for n, s in enumerate(a)] 
unbeli

1

@jhibberd's answer 괜찮지 만, 수입이없는 단지 경우에, 여기에 같은 생각 :

같은 대답 :
관련 문제