문자 목록을 문자열로 변환
문자 목록이 있는 경우:
a = ['a','b','c','d']
단일 문자열로 변환하려면 어떻게 해야 하나요?
a = 'abcd'
를 사용합니다.join
빈 문자열이 모든 문자열을 결합하는 메서드는 다음과 같습니다.
>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'
이것은 JavaScript나 Ruby와 같은 많은 인기 언어에서 작동하는데, Python에서는 왜 안 될까요?
>>> ['a', 'b', 'c'].join('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
이상하게도 Python에서는join
메서드는str
클래스:
# this is the Python way
"".join(['a','b','c','d'])
왜죠join
의 메서드가 아닙니다.list
JavaScript 또는 기타 일반적인 스크립트 언어에서와 같은 오브젝트?이것은 Python 커뮤니티가 생각하는 방법의 한 예이다.join은 문자열을 반환하기 때문에 리스트클래스가 아닌 문자열클래스에 배치해야 합니다.str.join(list)
method means: 목록을 새 문자열에 참여시킵니다.str
(이 경우) 구분자로서str
는 빈 문자열입니다).
왠지 오랜만에 이런 생각이 너무 좋아졌어요.Python의 디자인은 많은 것에 대해 불평할 수 있지만 일관성에 대해서는 불평할 수 없습니다.
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'
게다가.str.join
가장 자연스러운 방법일 가능성이 있습니다.io.StringIO
학대하다writelines
모든 요소를 한 번에 작성하려면:
import io
a = ['a','b','c','d']
out = io.StringIO()
out.writelines(a)
print(out.getvalue())
인쇄:
abcd
이 접근방식을 발전기 기능 또는 반복 가능한 기능과 함께 사용하는 경우tuple
또는list
임시 목록 작성을 저장합니다.join
는 적절한 사이즈를 한번에 할당하기 위해 사용합니다(메모리 면에서는1 문자 문자열의 리스트는 매우 비쌉니다).
메모리가 부족하고, 평가 대상 오브젝트가 게으른 경우, 이 접근방식이 최선의 솔루션입니다.
다음과 같이 사용할 수도 있습니다.
>>> from operator import concat
>>> a = ['a', 'b', 'c', 'd']
>>> reduce(concat, a)
'abcd'
Python 3을 사용하는 경우 다음 사항을 추가해야 합니다.
>>> from functools import reduce
원래부터reduce()
는 Python 3에서 삭제되어 에 존재합니다.
언급URL : https://stackoverflow.com/questions/4481724/convert-a-list-of-characters-into-a-string
'programing' 카테고리의 다른 글
여러 속성을 기준으로 목록을 정렬하시겠습니까? (0) | 2022.09.23 |
---|---|
jquery 또는 javascript를 사용하여 객체 배열을 정렬하는 방법 (0) | 2022.09.23 |
PHP와 함께 comet을 사용하시겠습니까? (0) | 2022.09.23 |
NodeJS + ExpressJS에서 mysql DB에 대한 연결을 관리하는 올바른 방법 (0) | 2022.09.23 |
MySQL "wait_timeout"이 긴 쿼리에 적용되지 않습니까? (0) | 2022.09.23 |