나는 파이썬으로 된 목록을 가지고있다.
names = ["Sam", "Peter", "James", "Julian", "Ann"]
일반 “[]없이 한 줄로 배열을 인쇄하고 싶습니다
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)
출력을 다음과 같이 제공합니다.
["Sam", "Peter", "James", "Julian", "Ann"]
그 형식은 내가 원하는 형식이 아닙니다. 대신이 형식을 원합니다.
Sam, Peter, James, Julian, Ann
참고 : 한 행에 있어야합니다.
답변
print(', '.join(names))
이것은 들리는 것처럼 목록의 모든 요소를 가져 와서 결합합니다 ', '
.
답변
여기 간단한 것이 있습니다.
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")
별표는 목록의 압축을 풀고 목록의 모든 요소를 반환합니다.
답변
일반 솔루션은 문자열이 아닌 배열에서 작동합니다.
>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'
답변
입력 배열이 정수 유형 인 경우 먼저 배열을 문자열 유형 배열 로 변환 한 다음 원하는 join
방법으로 결합 ,
하거나 공백을 만드는 방법을 사용해야 합니다. 예 :
>>> arr = [1, 2, 4, 3]
>>> print(", " . join(arr))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> sarr = [str(a) for a in arr]
>>> print(", " . join(sarr))
1, 2, 4, 3
>>>
정수와 문자열을 결합하는 join을 직접 사용하면 위와 같이 오류가 발생합니다.
답변
두 가지 답변이 있습니다. 먼저 ‘sep’설정 사용
>>> print(*names, sep = ', ')
다른 하나는 아래에 있습니다
>>> print(', '.join(names))
답변
이것이 당신이 필요로하는 것입니다
", ".join(names)
답변
','.join(list)
목록의 모든 항목이 문자열 인 경우에만 작동합니다. 숫자 목록을 쉼표로 구분 된 문자열로 변환하려는 경우. 등 a = [1, 2, 3, 4]
으로 '1,2,3,4'
다음 중 하나를 수
str(a)[1:-1] # '1, 2, 3, 4'
또는
str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'
이것은 중첩 목록을 제거하지는 않습니다.
다시 목록으로 변환하려면
a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]