)파이썬 코드 관련 궁금한게 있습니다.
첫 줄에 행과 열의 숫자를 입력받은후
다음 줄부터 리스트에 리스트를 추가하고싶어서 다음과 같이 작성하였습니다.
입력 예)
3 3
3 1 2
4 1 4
2 2 2
n, m = map(int, input().split())
data= []
for _ in range(n):
data.append( list( map(int,input().split())) )
print(data)
이는 결과로
[[3, 1, 2], [4, 1, 4], [2, 2, ,2]]
의도한대로 잘 나오게 되었습니다.
문제에서 필요한 요건이 각 리스트당 가장 작은 수를 구해야하는 것이였기에, 리스트[0] 을 이용하고자 저는 다음과 같이 정렬될수 있나 구현해 보았습니다.
n, m = map(int, input().split())
data= []
for _ in range(n):
data.append( list( map(int,input().split().sort())) )
print(data)
저는 split()의 반환값으로 리스트가 나오므로 sort()가 적용 가능할줄알았는데 실행이 되지않았습니다.
그래서 전 다른 방향으로 코드를 다시 작성해 보았습니다.
n, m = map(int, input().split())
data= []
for _ in range(n):
data.append( list( map(int,input().split())).sort() )
print(data)
이렇게 작성하였을때, 저는 정렬된 리스트가 들어갈줄 알았으나, 결과값으로 [None, None, None] 이 되었습니다 이에 관련되어 혹시 아시는게 있을까요?
완전 초보인지라 기본적인것도 잘 모르는것 같네요. ㅠㅠ 도와주시면 감사하겠습니다.
x = l.sort() 의 경우 l은 정렬되는데 x에는 None이 들어감. 가장 쉬운 방법은 처음 시도에서 data.append( list( map(int,input().split())) )에서 list( map(int,input().split()))를 min ( list( map(int,input().split())) )로 바꿔주는 것
최소값 말고 정렬된 리스트를 꼭 넣고 싶으면 data.append( list( map(int,input().split())) )에서 list( map(int,input().split()))를 sorted( list( map(int,input().split())) )로 해주면 된다.
아.. sort는 파괴적 함수라 원래의 리스트가 변경되고 반환값은 None이였던거군요..! 감사합니다 생각해보니 말씀대로 리스트 자체에 최소값을 추가해도 되는거였네요. 추가적으로 sorted에 관련되게도 말해주셨네요. 정말 너무 감사드립니다..!!