반응형
파이썬에서 지도 값을 결합하는 방법
나는 다음과 같은 지도를 가지고 있다:
0,15
1,14
2,0
3,1
4,12
5,6
6,4
7,2
8,8
9,13
10,3
11,7
12,9
13,10
14,11
15,5
내가 하고 있는 것을 인쇄하려면
def PrintValuesArray(su_array):
for each in su_array:
print ",".join(map(str, each))
그러나 나는 다음과 같이 값과 쉼표만 구분하기를 원한다:
난 시도했다.
def PrintSuffixArray(su_array):
for key, value in su_array:
print ",".join(map(str, value))
그러나 얻었다
print ",".map(map(str, value)) 유형 오류: 매핑할 인수 2가 반복을 지원해야 합니다
그리고 또한
def PrintSuffixArray(su_array):
for key, value in su_array:
print ",".join(map(str, value in su_array))
print ",".map(str, su_array의 값) 유형 오류: 매핑할 인수 2가 반복을 지원해야 합니다
다음과 같은 결과를 인쇄하는 방법
15, 14, 0, 1, 12, 6, 4, 2, 8, 13, 3, 7, 9, 10, 11, 5
다음을 시도해 보십시오:
print ", ".join(str(y) for x, y in su_array)
목록 이해력과 함께 사용할 수 있습니다:
>>> su_array = [(0, 15), (1, 14), (2, 0), (3, 1), (4, 12), (5, 6), (6, 4), (7, 2), (8, 8), (9, 13), (10, 3), (11, 7), (12, 9), (13, 10), (14, 11), (15, 5)]
>>> ', '.join([str(b) for _, b in su_array])
'15, 14, 0, 1, 12, 6, 4, 2, 8, 13, 3, 7, 9, 10, 11, 5'
먼저 목록을 반복하고 두 번째 요소만 얻습니다(속기에 사용할 수 있음). 그런 다음 를 사용하여 원하는 출력을 얻습니다:
>>> original = """0,15
... 1,14
... 2,0
... 3,1
... 4,12
... 5,6
... 6,4
... 7,2
... 8,8
... 9,13
... 10,3
... 11,7
... 12,9
... 13,10
... 14,11
... 15,5"""
>>>
>>> print [i.split(",")[1] for i in original.split("\n")]
['15', '14', '0', '1', '12', '6', '4', '2', '8', '13', '3', '7', '9', '10', '11', '5']
>>> print ",".join([i.split(",")[1] for i in original.split("\n")])
15,14,0,1,12,6,4,2,8,13,3,7,9,10,11,5
또는 두 개로 구성된 경우:
>>> original = """0,15
... 1,14
... 2,0
... 3,1
... 4,12
... 5,6
... 6,4
... 7,2
... 8,8
... 9,13
... 10,3
... 11,7
... 12,9
... 13,10
... 14,11
... 15,5"""
>>>
>>> original_tuples = [tuple(i.split(",")) for i in original.split("\n")]
>>> original_tuples
[('0', '15'), ('1', '14'), ('2', '0'), ('3', '1'), ('4', '12'), ('5', '6'), ('6', '4'), ('7', '2'), ('8', '8'), ('9', '13'), ('10', '3'), ('11', '7'), ('12', '9'), ('13', '10'), ('14', '11'), ('15', '5')]
>>> ",".join(map(str,[j for i,j in original_tuples]))
'15,14,0,1,12,6,4,2,8,13,3,7,9,10,11,5'
또는 를 건너뛰고 목록 이해 내에서 요소를 문자열로 캐스팅할 수 있습니다
>>> ",".join(str(j) for i,j in original_tuples)
'15,14,0,1,12,6,4,2,8,13,3,7,9,10,11,5'
>>> a = """0,15
... 1,14
... 2,0
... 3,1
... 4,12
... 5,6
... 6,4
... 7,2
... 8,8
... 9,13
... 10,3
... 11,7
... 12,9
... 13,10
... 14,11
... 15,5
... """
>>> map(lambda x: x.split(',')[1], a.split())
['15', '14', '0', '1', '12', '6', '4', '2', '8', '13', '3', '7', '9', '10', '11', '5']
내가 이해한다면, 당신의 질문에서, 당신이 언급한 결과에 따르면, 당신은 다음과 같은 것을 가지고 있다
`su_array = [(1, 14), (2, 0), (3, 1), ...]` etc...
이를 바탕으로 다음 중 하나를 사용합니다:
print(", ".join(str(a[1]) for a in su_array))
아니면
print(", ".join(map(lambda a: str(a[1]), su_array)))
당신이 원하는 것을 얻을 수 있는 두 가지 방법입니다.
반응형
'개발하자' 카테고리의 다른 글
쿠버네티스는 포드를 설명합니다 - 서버에서 오류가 발생했습니다(찾을 수 없음) (0) | 2023.08.03 |
---|---|
파이썬 실행 스레드 (0) | 2023.08.03 |
Python을 사용하여 포트가 사용 중인지 여부를 테스트하는 빠른 방법 (0) | 2023.08.02 |
고정 크기 힙 파이썬 유지 (0) | 2023.08.01 |
Azure DevOps 파이프라인 - Python - sys.path.append() 또는 PYSTONPATH를 설정했음에도 불구하고 Module NotFound 오류가 발생했습니다 (0) | 2023.08.01 |