starkisuk305   1년 전

1 2 1 2 1 2 라는 인풋이 있는데 보통 a라는 변수에 int 리스트로 받고 싶으면

a = list(map(int, input().strip().split()))

이렇게 선언 하잖아요.
근데 약간 이 인풋을 처음부터 받을 때 형식을 [[index, input data 0, check], [index, input data 1, check], [index, input data 2, check], [index, input data 3, check]...] 이렇게 받고 싶으면 어떻게 구문을 만들면 되나요?
그리고 별도로 두 개의 같은 열의 a,b의 리스트를 [[a0,b0],[a1,b1],...] 이렇게 묶는 방법도 알려주시면 감사하겠습니다.

bamgoesn   1년 전

check과 index가 뭘 의미하는 변수인가요?

a와 b의 크기가 같다면 list(zip(a, b))를 하면 [(a[0], b[0]), (a[1], b[1]), ...]이 만들어집니다. 각 원소가 리스트는 아닌 튜플인데, 이걸 리스로 바꾸고 싶으시면 list(map(list, zip(a, b)))를 하시면 됩니다. 둘 중 하나의 크기가 더 작다면 결과물은 작은 쪽을 따라서, 더 큰 리스트는 일부만 가져옵니다.

starkisuk305   1년 전

index는 그냥 해당 위치 표현 숫자를 뜻하는 거였구.. check는 그냥 True False 용을 대체하는 용어였습니다.

튜플이 아닌 리스트로는 못 묶나요?

bamgoesn   1년 전

일단 리스트로 묶는 건 list(map(list, zip(a, b)))로 묶으면 된다고 말씀드렸습니다.

그리고 첫 번째 질문에 대해선... 아래에 이런저런 방법을 쭉 써놓긴 할 텐데 이걸 쓰실지 말지는 본인이 판단하시면 됩니다. 만약 너무 끔찍하다 싶으시면 그냥 손구현하세요.

입력이 "6 5 4 3"일때

list(map(int, input().split()))
=> [6, 5, 4, 3]

list(enumerate(map(int, input().split())))
=> [(0, 6), (1, 5), (2, 4), (3, 3)]

list(map(list, enumerate(map(int, input().split()))))
=> [[0, 6], [1, 5], [2, 4], [3, 3]]

check = True
list(map(lambda x: [*x, check], enumerate(map(int, input().split()))))
=> [[0, 6, True], [1, 5, True], [2, 4, True], [3, 3, True]]

댓글을 작성하려면 로그인해야 합니다.