문자열 목록에서 쉼표로 구분된 문자열을 만들려면 어떻게 해야 합니까?
연속되는 두 쌍의 쌍 사이에 쉼표가 추가되도록 시퀀스에서 문자열을 연결하는 방법은 무엇입니까?즉, 예를 들어 어떻게 맵을 작성하면['a', 'b', 'c']
로.'a,b,c'
? (케이스)['s']
그리고.[]
에 매핑해야 합니다.'s'
그리고.''
(각각).
저는 보통 이런 걸 쓰거든요.''.join(map(lambda x: x+',',l))[:-1]
약간 불만스럽기도 합니다.
my_list = ['a', 'b', 'c', 'd']
my_string = ','.join(my_list)
'a,b,c,d'
목록에 정수가 포함되어 있으면 작동하지 않습니다.
목록에 문자열이 아닌 유형(정수, 플로트, 부울, 없음 등)이 포함되어 있는 경우 다음을 수행합니다.
my_string = ','.join(map(str, my_list))
왜?map
/lambda
마술이요? 이거 안 먹히나요?
>>> foo = ['a', 'b', 'c']
>>> print(','.join(foo))
a,b,c
>>> print(','.join([]))
>>> print(','.join(['a']))
a
목록에 숫자가 있는 경우 목록 이해를 사용할 수 있습니다.
>>> ','.join([str(x) for x in foo])
또는 제너레이터 식:
>>> ','.join(str(x) for x in foo)
",".join(l)
모든 경우에 효과가 있는 것은 아닙니다.문자열과 함께 csv 모듈을 사용하는 것이 좋습니다.입출력
import StringIO
import csv
l = ['list','of','["""crazy"quotes"and\'',123,'other things']
line = StringIO.StringIO()
writer = csv.writer(line)
writer.writerow(l)
csvcontent = line.getvalue()
# 'list,of,"[""""""crazy""quotes""and\'",123,other things\r\n'
@피터 호프만
생성기 식을 사용하면 반복기를 생성할 수 있지만 반복 도구 가져오기를 절약할 수 있습니다.또한 일반적으로 매핑보다는 리스트 컴플리션을 선호하기 때문에 imap보다는 생성기 식을 선호할 것으로 예상됩니다.
>>> l = [1, "foo", 4 ,"bar"]
>>> ",".join(str(bit) for bit in l)
'1,foo,4,bar'
다음은 문자열이 아닌 목록 항목을 허용하는 Python 3.0의 대체 솔루션입니다.
>>> alist = ['a', 1, (2, 'b')]
표준적인 방법
>>> ", ".join(map(str, alist)) "a, 1, (2, 'b')"
대체 해결책
>>> import io >>> s = io.StringIO() >>> print(*alist, file=s, sep=', ', end='') >>> s.getvalue() "a, 1, (2, 'b')"
메모: 쉼표 뒤의 공백은 의도적인 것입니다.
당신은 단지 다음을 원하지 않나요?
",".join(l)
값에 쉼표 등을 따옴표로 묶거나 이스케이프해야 하는 경우에는 더 복잡해집니다.이 경우 표준 라이브러리의 csv 모듈을 참조할 것을 권장합니다.
https://docs.python.org/library/csv.html
>>> my_list = ['A', '', '', 'D', 'E',]
>>> ",".join([str(i) for i in my_list if i])
'A,D,E'
my_list
에는 모든 유형의 변수를 포함할 수 있습니다.이렇게 하면 결과를 피할 수 있습니다.'A,,,D,E'
.
l=['a', 1, 'b', 2]
print str(l)[1:-1]
Output: "'a', 1, 'b', 2"
목록 이해를 사용하는 @jmanning2k에는 새로운 임시 목록이 작성되는 단점이 있습니다.더 나은 솔루션은 반복기를 반환하는 itertools.imap을 사용하는 것입니다.
from itertools import imap
l = [1, "foo", 4 ,"bar"]
",".join(imap(str, l))
리스트의 예를 다음에 나타냅니다.
>>> myList = [['Apple'],['Orange']]
>>> myList = ','.join(map(str, [i[0] for i in myList]))
>>> print "Output:", myList
Output: Apple,Orange
정확성 향상:-
>>> myList = [['Apple'],['Orange']]
>>> myList = ','.join(map(str, [type(i) == list and i[0] for i in myList]))
>>> print "Output:", myList
Output: Apple,Orange
예 2:-
myList = ['Apple','Orange']
myList = ','.join(map(str, myList))
print "Output:", myList
Output: Apple,Orange
숏컷 방법을 사용하는 경우:)
','.join([str(word) for word in wordList])
그러나 논리로 과시하고 싶은 경우:)
wordList = ['USD', 'EUR', 'JPY', 'NZD', 'CHF', 'CAD']
stringText = ''
for word in wordList:
stringText += word + ','
stringText = stringText[:-2] # get rid of last comma
print(stringText)
내가 뭘 놓치고 있는 게 아니라면','.join(foo)
당신이 원하는 걸 해야 해요
>>> ','.join([''])
''
>>> ','.join(['s'])
's'
>>> ','.join(['a','b','c'])
'a,b,c'
(편집: jmanning2000이 지적한 바와 같이
','.join([str(x) for x in foo])
결과 문자열이 콤마를 포함할 수 있는 경우 해석하기가 어렵지만, 더 안전하고 꽤 피토닉합니다--그 시점에서, 당신은 완전한 힘을 필요로 합니다.csv
모듈(더글러스 답변에서 지적한 바와 같이)
는 '아까운'이라고 이다.csv
라이브러리는 문자열의 쉼표 등 모든 csv 사용 사례에 대응하도록 구축되었기 때문에 이 옵션에서는 유일하게 편리한 옵션입니다.
을 l
. 파일 .csv로 합니다.
import csv
with open('some.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(l) # this will output l as a single row.
사용할 수도 있습니다.writer.writerows(iterable)
csv로 하다
3과 이 있습니다. 3을 사용하고 있습니다.StringIO
파이썬 2번
mmm SQL의 필요성은 다음과 같습니다.
l = ["foo" , "baar" , 6]
where_clause = "..... IN ("+(','.join([ f"'{x}'" for x in l]))+")"
>> "..... IN ('foo','baar','6')"
금지하다
내 의견이야.python으로 된 간단한 한 줄 코드를 좋아합니다.
>>> from itertools import imap, ifilter
>>> l = ['a', '', 'b', 1, None]
>>> ','.join(imap(str, ifilter(lambda x: x, l)))
a,b,1
>>> m = ['a', '', None]
>>> ','.join(imap(str, ifilter(lambda x: x, m)))
'a'
비단뱀처럼 문자열, 숫자, 없음 및 빈 문자열에 대해 작동합니다.짧고 요건을 충족합니다.리스트에 숫자가 포함되지 않는 경우는, 다음의 간단한 변형을 사용할 수 있습니다.
>>> ','.join(ifilter(lambda x: x, l))
또, 이 솔루션은 새로운 리스트를 작성하는 것이 아니고, @Peter Hoffmann이 지적한(고맙습니다) 것과 같은 반복기를 사용합니다.
언급URL : https://stackoverflow.com/questions/44778/how-would-you-make-a-comma-separated-string-from-a-list-of-strings
'programing' 카테고리의 다른 글
특정 다른 열 값에 대해서만 한 열에 대한 색인 (0) | 2022.10.02 |
---|---|
JavaScript에서 "double tilde"(~~) 연산자는 무엇입니까? (0) | 2022.10.02 |
Java: printf 문의 리터럴 퍼센트 사인 (0) | 2022.10.02 |
GMail, Yahoo 또는 Hotmail을 사용하여 Java 어플리케이션으로 이메일을 보내려면 어떻게 해야 하나요? (0) | 2022.10.02 |
MySQL 삽입 쿼리가 WHERE 절과 함께 작동하지 않습니다. (0) | 2022.10.02 |