리스트 만들기

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