본문 바로가기

PYTHON/초보자를 위한 파이썬 300제

04. 파이썬 리스트 061 ~ 070

어제 리스트에 대해서 공부했더니 어제보다는 수월해졌다,,,휴~ 그래도 아직 모르는 부분이 많으니 공부하기!

https://wikidocs.net/7025

 

061 ~ 070

.answer {margin-top: 10px;margin-bottom: 50px;padding-top: 10px;border-top: 3px solid LightGray;bo…

wikidocs.net

 

# 2024 02 20 TUE
# 061
# 리스트 안의 날짜 정보를 제외하고 가격 정보만을 출력
price = ['20180728', 100, 130, 140, 150, 160, 170]
print(price[1:])

# 062
# 슬라이싱을 사용해서 홀수만 출력
nums1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(nums1[::2])

# 063
# 슬라이싱을 사용해서 짝수만 출력
nums2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(nums2[1::2])

# 064
# 슬라이싱을 사용해서 리스트의 숫자를 역 방향으로 출력
nums3 = [1, 2, 3, 4, 5]
print(nums3[::-1])

# 065
# interest1 리스트를 사용해서 '삼성전자 Naver' 출력
interest1 = ['삼성전자', 'LG전자', 'Naver']
print(interest1[0], interest1[2])

# 066
# interest2 리스트를 사용해서 '삼성전자 LG전자 Naver SK하이닉스 미래에셋대우' 출력
interest2 = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
# print(interest2[::])
print(" ".join(interest2))

# 067
# interest2 리스트를 사용해서 '삼성전자/LG전자/Naver/SK하이닉스/미래에셋대우' 출력
# print(interest2[::], sep="/")
print("/".join(interest2))

# 068
# join() 메서드를 사용해서 interest2 리스트를 아래와 같이 출력
# 삼성전자
# LG전자
# Naver
# SK하이닉스
# 미래에셋대우
# print(interest2[::], sep="\n")
print("\n".join(interest2))


# 069
# 슬래시로 구분되어 하나의 문자열로 저장된 회사 이름 리스트를 분리 저장
company = "삼성전자/LG전자/Naver"
interest = company.split("/")
print(interest)

# 070
# 리스트에 있는 값을 오름차순으로 정렬
data = [2, 4, 3, 1, 5, 10, 9]
data = sorted(data)
print(data)

 

061 ~ 070 출력 결과

 

내가 몰랐던 문법

 

1. join() 메서드

join() 메서드는 문자열을 연결하는 메서드로, 주어진 문자열을 리스트의 각 원소 사이에 삽입하여 하나의 문자열로 만든다. 이 메서드는 문자열을 결합할 때 사용되며, 리스트에 있는 각 항목을 하나의 문자열로 결합할 때 특히 유용하다. 

기본 구문

separator.join(iterable)

  • separator: 문자열을 합칠 때 각 항목 사이에 삽입될 구분자이다. 이는 선택적 매개변수이며, 기본값은 없다.
  • iterable: 문자열로 변환될 리스트, 튜플 또는 다른 이터러블(iterable) 객체

join() 메서드를 사용해서 리스트의 각 원소를 문자열로 결합할 때 주의할 점은 '모든 원소'가 문자열이어야 한다. 문자열이 아닌 데이터 타입의 원소가 있다면 join() 메서드를 사용할 수 없다.

 

2-1. sort() 메서드

리스트를 제자리에서 정렬한다. 즉, '원래' 리스트를 변경한다. 기본적으로 오름차순으로 정렬되며, 문자열의 경우 알파벳순으로, 숫자의 경우 작은 값부터 큰 값 순서로 정렬된다. 

 

70번 문제

data = [2, 4, 3, 1, 5, 10, 9]
data.sort()
print(data)

 

리스트.sort() 메서드는 원래 리스트를 제자리에서 정렬할 뿐, 정렬된 결과를 반환하지 않는다. 따라서 data.sort()를 호출하게 되면 원래 리스트인 'data'가 정렬되지만, 반환 값으로는 'None'이 반환된다. 따라서 print(data.sort())를 호출하면 'None'이 출력된다. 이는 sort() 메서드가 반환하는 값이 없기 때문이다,,,

 

 

2-2. sorted() 함수

원래 리스트를 변경하지 않고 정렬된 새로운 리스트를 반환한다. 제자리 정렬이 아니라 정렬된 새로운 리스트를 반환하기 때문에 원래 리스트는 그대로 유지된다. 따라서 sorted() 함수를 호출한 결과를 새로운 변수에 할당해야 정렬된 리스트를 참조해 사용할 수 있다. 

 

+ plus

sort() 메서드, sorted() 함수는 선택적인 매개변수를 사용해 정렬 방법을 변경할 수 있다. 예를 들어, 'reverse=True' 매개변수를 사용하면 내림차순으로 정리할 수 있다. 여기서 함수나 메서드를 호출 할 때 매개변수를 사용하는 것은 괄호'()' 안에 값을 넣는 것을 말한다. 매개변수는 함수나 메서드가 실행될 대 필요한 입력 값이다.