문자 목록이있는 경우 :
a = ['a','b','c','d']
단일 문자열로 어떻게 변환합니까?
a = 'abcd'
답변
join
빈 문자열 의 메소드를 사용하여 다음 과 같이 빈 문자열과 함께 모든 문자열을 결합하십시오.
>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'
답변
이것은 JavaScript와 Ruby와 같은 많은 인기있는 언어에서 작동합니다. 왜 파이썬에서는 그렇지 않습니까?
>>> ['a', 'b', 'c'].join('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
이상하게도 파이썬에서는 join
메소드가 str
클래스에 있습니다.
# this is the Python way
"".join(['a','b','c','d'])
JavaScript 나 다른 인기있는 스크립트 언어와 같이 객체 join
의 메소드가 아닌 이유 는 무엇 list
입니까? 파이썬 커뮤니티가 어떻게 생각하는지에 대한 예입니다. join은 문자열을 반환하므로 문자열은 목록 클래스가 아닌 문자열 클래스에 배치되어야합니다. 따라서 str.join(list)
메서드는 다음을 의미합니다. str
구분 기호로 사용하여 목록을 새 문자열로 조인합니다 (이 경우 str
빈 문자열 임).
어떻게 든 나는 잠시 후이 사고 방식을 좋아해야했다. 파이썬 디자인에서 많은 것들에 대해 불평 할 수는 있지만 일관성에 대해서는 불평 할 수 없습니다.
답변
Python 인터프리터가 이전 버전 인 경우 (예 : 일부 이전 Linux 배포판에서 일반적으로 사용되는 1.5.2) join()
이전 문자열 객체에서 메소드로 사용 가능 하지 않을 수 있으며 대신 문자열 모듈을 사용해야합니다. 예:
a = ['a', 'b', 'c', 'd']
try:
b = ''.join(a)
except AttributeError:
import string
b = string.join(a, '')
문자열 b
은입니다 'abcd'
.
답변
가장 빠른 방법 일 수 있습니다.
>> from array import array
>> a = ['a','b','c','d']
>> array('B', map(ord,a)).tostring()
'abcd'
답변
감소 기능도 작동합니다
import operator
h=['a','b','c','d']
reduce(operator.add, h)
'abcd'
답변
목록에 숫자가 포함 된 경우 map()
와 함께 사용할 수 있습니다 join()
.
예 :
>>> arr = [3, 30, 34, 5, 9]
>>> ''.join(map(str, arr))
3303459
답변
h = ['a','b','c','d','e','f']
g = ''
for f in h:
g = g + f
>>> g
'abcdef'