C언어를 배워봤다면, 리스트보다는 배열이란 이름에 익숙할 것이다. 파이썬에서는 리스트가 배열 역할을 한다.
(아직 배열이란 것을 몰라도 된다.)
리스트는 숫자 등의 모음을 다음과 같이 간단하게 표현 가능하다.
even = [2, 4, 6, 8, 10]
리스트를 만들 때는 대괄호([ ]) 로 감싸 주고, 각 요솟값은 쉼표( , )로 구분한다.
리스트명 = [요소1, 요소2, 요소3, ... ] 처럼 말이다.
a = [] # a = list()와 같다
b = [1, 2, 3]
c = ['Kim', 'Park', 'Sin']
d = [1, 3, 'Python', 5]
e = [1, 2, ['py', 'thon']]
이 예제에서처럼 리스트에서는 다양한 자료형을 집어넣을 수 있다.
빈 리스트, 숫자를 가진 리스트, 문자열을 가진 리스트, 숫자와 문자를 같이 가진 리스트, 리스트를 가진 리스트 .....
리스트 안에는 어떠한 자료형도 포함시킬 수 있다.
위에서 b[0]을 출력하면 1이 나온다.
b[1]을 출력하면 2가 나온다.
(리스트 인덱스(칸칸이 세기 위한 것)는 1부터 시작하는 것이 아닌 0부터 시작해서 1, 2, 3...되기 때문에)
# 사전순으로 가장 이름이 빠른 사람 출력
str = ['abc', 'def', 'bbb', 'ccc']
str.sort() # print하면 'None'이라는 것이 출력된다
print(str)
str1 = ['abc', 'def', 'bbb', 'ccc']
print(sorted(str1))
print(str1)
위 예제에서는 리스트를 sort()했다.
sort()는 오름차순 정렬이다.
만약 str.sort()만 하지 않고 이 구문을 print()안에 넣는다면 이상한 값이 출력될 것이다. (None)
sorted(리스트 이름)은 print()안에 넣으면 정상적으로 정렬된다.
하지만 리스트에 정렬된 값으로 저장되진 않는다.
#5개~10개 사이의 숫자를 입력받을 때 1등과 꼴찌의 점수차 출력.
num1=list(map(int,input().split()))
num1.sort(reverse=True)
print(num1[0] - num1[len(num1) - 1])
이 예제에서는 input()으로 숫자를 받아 split()으로 공백을 기준으로 쪼개고,
map()으로 쪼갠 것들을 정수형(숫자형)으로 바꾼 뒤 list()로 리스트 형식을 만들었다.
sort는 오름차순 정렬이라고 위에서 봤었는데,
sort(reverse=True) 라고 하면 내림차순 정렬이 된다. (뒤집는다는 뜻이다)
그래서 가장 큰 첫번째 값에서 마지막 값을 빼는 것이다.