2012-10-15 7 views
4

저는 파이썬 놈입니다. 간단한 문제에 대한 도움이 필요합니다.목록의 항목에 공백 추가하기 (파이썬)

내가해야 할 일은 3 개의 항목으로 목록을 만들고 모든 항목 앞뒤에 공백을 추가하는 것입니다. 예를 들어 : 나는 이런 식으로 뭔가 쓰기를 시도했다 [' a ',' bb ',' c ']

: l1 = ['a', 'bb', 'c'] 은로 변환해야하는 다른 요소 등

lst = ['a', 'bb', 'c'] 
for a in lst: 
    print ' a ' 

... 그리고, 그러나 나는 구문 오류가 발생합니다. 누구든지이 작업을 수행 할 수있는 방법을 제안 할 수 있습니까? 감사.

lst = [' {0} '.format(elem) for elem in lst] 

이 공간을 추가 각 요소에 적용 string formatting operation : 항상

답변

9

list comprehension 사용. Python 2.7 이상을 사용하는 경우 대체 필드 (중괄호)에서 0을 생략 할 수도 있습니다.

+0

완벽, 설명 주셔서 감사합니다! – test123

5
[ ' {} '.format(x) for x in lst ] 
+0

이렇게하면 'ValueError : 형식의 길이가 0 인 필드 이름을 얻습니다 .' –

+0

@BurhanKhalid : 아니요. 어쨌든 파이썬 2.7에서 나는 그것을 시도하지 않았다. –

+0

@ BurhanKhalid <2.7, 예. ''{0} '''이됩니다. 사전 2.7, 자동 번호 매기기 항목을 사용할 수 없습니다. –

0

이 시도 :

lst = [' ' + x + ' ' for x in ['a', 'bb', 'c']] 
+1

'.format()'메서드를 사용하거나, 병합 대신에'%'문자열 포맷팅 연산자를 집어 넣는 것이 더 나을 것입니다. 훨씬 더 효율적입니다. –

+0

'[ 'a', 'bb', 'c']'를 문자열의 다른 목록이나 목록이 포함 된 변수 (예 : 'lst')로 바꿀 수 있습니다. –

+0

필자는'.format()'을 사용하여 성능 측면에서보다 효율적으로 접근한다는 점에 동의합니다. –

1
In [44]: l1 = ['a', 'bb', 'c'] 

In [45]: [' %s '%x for x in l1] 
Out[45]: [' a ', ' bb ', ' c '] 
0
>>> lst = ['a', 'bb', 'c'] 
>>> 
>>> [' {} '.format(x) for x in lst] 
[' a ', ' bb ', ' c '] 
>>> 
1

들여 쓰기 파이썬 코드를 먼저! : 그리고

lst = ['a', 'b', 'c'] 
lst2 = [' ' + a + ' ' for a in lst] 
print lst2 
+2

'.format()'메서드를 사용하거나, 병합 대신에'%'문자열 형식화 연산자를 사용하는 것이 좋습니다. 훨씬 더 효율적입니다. –

+0

이것은 내가 넣은 모든 문자열에 대해 완벽하게 작동했습니다. 정말 고마워요! – test123

2
lst = ['a', 'bb', 'c'] 
lst = [' ' + x + ' ' for x in lst]