for 반복문 뒤에 리스트를 지정하면 된다.
a = [1,2,3,4,5]
for i in a:
print(i)
1
2
3
4
5
for i in [1,2,3,4,5] # 리스트를 직접 지정해 줘도 가능하다.
print(i)
for 반복문으로 요소를 출력할 때 인덱스도 같이 출력할 수 있다.
a = [1,2,3,4,5]
for index, value in enumerate(a):
print(index, value)
0 1
1 2
2 3
3 4
4 5
print(index + 1, value) #인덱스를 1부터 출력하고 싶을때
1 1
2 2
3 3
4 4
5 5
for index, value in enumerate(a, start = 1): #인덱스를 1부터 출력하고 싶을때 두 번째 방법
print(index, value)
1 1
2 2
3 3
4 4
5 5
a =[1,2,3,4,5]
i = 0
while i < len(a):
print(a[i])
i += 1
1
2
3
4
5
a = [1,2,3,4,5]
smallest = a[0]
for i in a:
if i < smallest:
smallest = i
smallest
1
a = [1,2,3,4,5]
largest = a[0]
for i in a:
if i > largest:
largest = i
largest
5
# 다른 방식들
a = [2,3,1,5,4]
a.sort()
print(a[0])
1
a = [2,3,1,5,6]
a.sort(reverse = True)
print(a[0])
6
a = [2,3,1,5,6]
print(min(a))
print(max(a))
1
6
a = [1,3,5,7,9]
x = 0
for i in a:
x += i
print(x)
25
#더 간단한 방법
a = [1,3,5,7,9]
sum(a)
25
파이썬의 리스트가 특이한 것은 리스트 안에서 for 반복문과 if 조건문을 사용할 수 있다는 점이다. 이런 식으로 리스트 안에 for 반복문과 if 조건문을 지정하여 리스트를 생성하는 것을 리스트 컴프리헨션이라고 한다. 다른 말로는 리스트 축약, 해석, 내장 등등으로 사용되지만 큰 개념으로는 표현식 그리고 생성된 값을 잡아둔다고 생각하면 된다.
a = [i for i in range(10)]
print(a)
[0,1,2,3,4,5,6,7,8,9]
파이썬의 경우 리스트 표현식에서 if 조건문을 사용하여 조건에 해당되는 값만 리스트로 만들 수 있다.
a = [i for i range(10) if i% 2 ==0 ]
print(a)
[0,2,4,6,8]
if 조건문을 이용하여 범위내에 짝수만 추출해 리스트로 생성.
a = [i+5 for i in range(10) if i % 2 == 1]
print(a)
[6,8,10,12,14]
2단부터 9단까지의 구구단 리스트
a = [i*j for j in range(2,10) for i in range(1,10)]
print(a)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
리스트 표현식에 for가 여러 개일 경우 뒤에서 부터 처리를 한다.
map을 이용하지 않고 리스트를 변경하려면 다음과 같은 과정을 거쳐야 한다.
a = [1.2,2,3,4,5]
for i in range(len(a)):
a[i] = int(a[i])
print(a)
[1, 2, 3, 4, 5]
그러면 이제 map을 이용해 보자
a = [1.1, 2.2, 3.3, 4.4]
a = list(map(int, a))
print(a)
[1, 2, 3, 4, 5]
map함수를 사용할 때 꼭 int여야 할 필요는 없다.
a = list(map(str,range(10)))
print(a)
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
input(),split()을 이용하여 두개의 값을 입력해주면 리스트가 만들어지기 때문에 print가 아닌 list로 출력을 해줘야 한다.
a = map(int, input().split())
list(a)
[10, 20]
map함수를 이용하여 만든 객체는 변수 여러 개에 저장이 가능하다.
x = input().split()
m = map(int, x)
a, b = m
print(a,b)
10 20
10 20
a = (1,2,3,4,5,2) # 값이 여러개일 경우 처음 찾은 인덱스를 나타내준다.
a.index(2)
1
특정 값의 개수
a = (1,2,3,1,2,3) #같은 값의 개수를 구한다.
a.count(2)
2
요소를 출력해보기
a = (1,2,3,4,5)
for i in a:
print(i, end = '')
1 2 3 4 5
튜플에 표현식을 사용하기
a = tuple(i for i in range(10) if i%2 ==0)
print(a)
(0,2,4,6,8)
튜플에 map 사용하기
a = (1.2, 2.5, 3.7, 4.6)
a = tuple(map(int, a))
print(a)
(1,2,3,4)
튜플도 리스트 처럼 최소값, 최대값, 요소의 합계를 구할 수 있다.
a = (1,2,3,4,5)
min(a) # 1
max(a) # 5
sum(a) # 15