리스트 만들기
2022. 10. 14. 00:03ㆍ파이썬(Python)
반응형
1. list comprehension
ex) 리스트 arr의 원소들을 각각 10을 더해주는 코드
arr=[1,2,3,4]
new_arr=[]
for i in arr:
new_arr.append(i+10)
print(new_arr)
결과
[11, 12, 13, 14]
- list comprehension 문법
[(append 안에 들어갈 내용) (for loop)]
- list comprehension을 사용하면
arr=[1,2,3,4]
new_arr=[i+10 for i in arr]
print(new_arr)
● 조건문을 사용하는 list comprehension
[(append 안에 들어갈 내용) for loop (조건문)]
- 원소들을 각각 10을 더한 후 홀수인 원소만 들어있는 리스트를 출력
arr=[1,2,3,4]
new_arr=[i+10 for i in arr if i%2==1]
print(new_arr)
결과
[11, 13]
● 변수가 2개 이상인 list comprehension
arr=[]
for i in range(5):
for j in range(3):
arr.append(i+j)
print(arr)
결과
[0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6]
- 위의 코드를 list comprehension을 적용하면
arr=[(i+j) for i in range(5) for j in range(3)]
print(arr)
Q) 제곱하여 출력
- 여러 개의 수를 입력하여 각각 제곱을 하여 출력
arr=list(map(int,input().split()))
new_arr=[i**2 for i in arr]
for i in new_arr:
print(i,end=' ')
결과
>> 2 5 8
4 25 64
2. 피보나치 구하기
- 첫 번째 원소가 1, 두 번째 원소가 1
- 세 번째 원소부터는 직전 두 원소의 합
ex) 1, 1, 2, 3, 5,...
n=int(input())
arr=[1,1]
for i in range(3,n+1):
arr.append(arr[-1]+arr[-2])
print(arr)
결과
>> 10
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
- 배열을 사용하지 않고 피보나치수열 만들기
n=int(input())
a,b=1,1
for i in range(3,n+1):
a,b=b,a+b
print(f'{n}번째 수는 {b}')
>> 10
10번째 수는 55
Q) 피보나치수열 (두 수를 입력)
- 두 수를 입력
- 100을 넘길 때 출력
a,b=map(int,input().split())
arr=[]
arr.append(a)
arr.append(b)
while arr[-1]<=100:
arr.append(arr[-1]+arr[-2])
print(arr)
결과
>> 2 8
[2, 8, 10, 18, 28, 46, 74, 120]
Q) 수열을 만족하는 배열
- 두 수를 입력
- An = 3*An-1 + 2*An-2
- 10번째 원소까지 구하여라
a,b=map(int,input().split())
arr=[]
arr.append(a)
arr.append(b)
for i in range(3,11):
arr.append(3*arr[-1]+2*arr[-2])
print(arr)
결과
>> 4 9
[4, 9, 35, 123, 439, 1563, 5567, 19827, 70615, 251499]
'파이썬(Python)' 카테고리의 다른 글
리스트 탐색 (0) | 2022.10.22 |
---|---|
Count 리스트 (0) | 2022.10.15 |
리스트와 인덱스 (0) | 2022.10.10 |
리스트 (list) (0) | 2022.10.01 |
다중 반복문5 (+문자열) (0) | 2022.09.30 |