<질문>
문자열 목록을 단일 문자열로 어떻게 연결합니까?
예를 들어, 주어진['this', 'is', 'a', 'sentence']
, 어떻게 내가 가질까"this-is-a-sentence"
?
별도의 변수 에서 몇 개의 문자열을 처리하려면 Python에서 한 문자열을 다른 문자열에 어떻게 추가합니까? 를 참조하십시오. .
반대 프로세스인 문자열에서 목록 만들기는 문자열을 문자 목록으로 어떻게 분할합니까?를 참조하세요. 또는 문자열을 단어 목록으로 어떻게 분할합니까? 적절한.
<답변1>
사용str.join
:
>>> words = ['this', 'is', 'a', 'sentence']
>>> '-'.join(words)
'this-is-a-sentence'
>>> ' '.join(words)
'this is a sentence'
<답변2>
목록을 문자열로 변환하는 보다 일반적인 방법(숫자 목록 포함)은 다음과 같습니다.
>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join(map(str, my_lst))
>>> print(my_lst_str)
12345678910
<답변3>
초보자가 알아두면 매우 유용합니다.why join is a string method.
처음에는 매우 이상하지만 이후에는 매우 유용합니다.
조인의 결과는 항상 문자열이지만 조인할 개체는 여러 유형(제너레이터, 목록, 튜플 등)일 수 있습니다.
.join
메모리를 한 번만 할당하기 때문에 더 빠릅니다. 고전적인 연결보다 낫습니다(참조,extended explanation).
한번 배우면 매우 편하고 괄호를 추가하는 이런 트릭을 할 수 있습니다.
>>> ",".join("12345").join(("(",")"))
Out:
'(1,2,3,4,5)'
>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'
<답변4>
미래에서 편집: 아래 답변을 사용하지 마십시오. 이 함수는 Python 3에서 제거되었으며 Python 2는 죽었습니다. 여전히 Python 2를 사용하고 있더라도 피할 수 없는 업그레이드를 더 쉽게 수행할 수 있도록 Python 3 준비 코드를 작성해야 합니다.
하지만@Burhan Khalid's answer좋습니다. 다음과 같이 더 이해하기 쉽다고 생각합니다.
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
join()의 두 번째 인수는 선택 사항이며 기본값은 " "입니다.
<답변5>
list_abc = ['aaa', 'bbb', 'ccc']
string = ''.join(list_abc)
print(string)
>>> aaabbbccc
string = ','.join(list_abc)
print(string)
>>> aaa,bbb,ccc
string = '-'.join(list_abc)
print(string)
>>> aaa-bbb-ccc
string = '\n'.join(list_abc)
print(string)
>>> aaa
>>> bbb
>>> ccc
<답변6>
우리는 또한 파이썬을 사용할 수 있습니다reduce
기능:
from functools import reduce
sentence = ['this','is','a','sentence']
out_str = str(reduce(lambda x,y: x+"-"+y, sentence))
print(out_str)
<답변7>
문자열을 결합하는 방법을 지정할 수 있습니다. 대신에'-'
, 우리는 사용할 수 있습니다' '
:
sentence = ['this','is','a','sentence']
s=(" ".join(sentence))
print(s)
<답변8>
혼합 콘텐츠 목록이 있고 이를 문자열화하려는 경우 다음과 같은 한 가지 방법이 있습니다.
다음 목록을 고려하십시오.
>>> aa
[None, 10, 'hello']
문자열로 변환:
>>> st = ', '.join(map(str, map(lambda x: f'"{x}"' if isinstance(x, str) else x, aa)))
>>> st = '[' + st + ']'
>>> st
'[None, 10, "hello"]'
필요한 경우 목록으로 다시 변환합니다.
>>> ast.literal_eval(st)
[None, 10, 'hello']
<답변9>
최종 결과에서 쉼표로 구분된 문자열 문자열을 생성하려면 다음과 같이 사용할 수 있습니다.
sentence = ['this','is','a','sentence']
sentences_strings = "'" + "','".join(sentence) + "'"
print (sentences_strings) # you will get "'this','is','a','sentence'"
<답변10>
def eggs(someParameter):
del spam[3]
someParameter.insert(3, ' and cats.')
spam = ['apples', 'bananas', 'tofu', 'cats']
eggs(spam)
spam =(','.join(spam))
print(spam)
<답변11>
.join() 메서드가 없으면 다음 메서드를 사용할 수 있습니다.
my_list=["this","is","a","sentence"]
concenated_string=""
for string in range(len(my_list)):
if string == len(my_list)-1:
concenated_string+=my_list[string]
else:
concenated_string+=f'{my_list[string]}-'
print([concenated_string])
>>> ['this-is-a-sentence']
따라서 이 예제에서 범위 기반 for 루프는 파이썬이 목록의 마지막 단어에 도달할 때 concenated_string에 "-"를 추가하면 안 됩니다. 문자열의 마지막 단어가 아닌 경우 항상 concenated_string 변수에 "-" 문자열을 추가합니다.
'개발 > Python' 카테고리의 다른 글
[파이썬] git 저장소 안에 virtualenv 디렉터리가 있는 것이 나쁜가요? (0) | 2023.01.20 |
---|---|
[파이썬] ImportError: No module named 'ConfigParser' (0) | 2023.01.20 |
[파이썬] 사전에서 키를 제거하는 방법 (0) | 2022.12.13 |
[파이썬 Pillow] PIL 이미지에서 EXIF 데이터 제거 (0) | 2022.12.09 |