[python] 한 줄에 괄호없이 목록 인쇄

나는 파이썬으로 된 목록을 가지고있다.

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]