간단한 파이썬 문제들 중 몰랐던 개념, 어려웠던 문제, 남기고 싶은 코드 정리하기
end= " "
- 리스트 요소를 하나씩 프린트 하는 것이 아니라 원하는 문자로 이어서 출력하기
#1부터 44까지 짝수만 출력
for i in range(1, 45):
if i % 2 == 0:
print(i, end=" ") #요소 사이에 공백으로 프린트
#결과: 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44
#end="," 하면 ,로 요소를 구분할 수 있음. 하지만 맨 마지막에도 똑같이 출력되니 주의
#2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,
피보나치 수열
- 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열
#피보나치 수열에서 14개만 출력
n, a, b = 1, 1, 1
print(f"{a} \n{b}")
while n < 14:
a, b = b, a+b
print(b)
n+=1
#결과
# 1
# 1
# 2
# 3
# 5
# 8
# 13
# 21
# 34
# 55
# 89
# 144
# 233
# 377
# 610
list(map(자료형, 값))
- 자료형 변환 후 리스트로 출력
- list()는 반복 가능한 객체를 리스트로 변환할 때 사용 가능
- 반복 가능한 객체(iterator): 'for 루프를 통해 요소를 하나씩 가져올 수 있는 객체'를 의미, map(), range(), zip(), filter(), 문자열, 튜플 등이 있음
#사용자에게 3개의 숫자를 받고, 그 중 가장 큰 수 출력
user_input_nums = list(map(int, input("숫자 3개를 입력하세요(,로 구분): ").split(',')))
#input(): 사용자 입력 받기
#.split(','): 입력받은 문자열을 쉼표 기준으로 나눔
#map(int, 값): 리스트의 각 문자열 요소를 정수로 변환
#list(): 리스트로 변환
max(user_input_nums)
#결과: 100
.sort(key, reverse)
- 정렬, 기본은 오름차순이고 reverse = True하면 내림차순
- sorted(리스트, key, reverse): 정렬하는 것은 같음
- sort는 원래 리스트를 변경, sorted는 새로운 리스트를 반환
#사용자에게 3개의 숫자를 받아, 오름차순 정렬하여 출력
user_input_nums = list(map(int, input("숫자 3개를 입력하세요(,로 구분): ").split(',')))
user_input_nums.sort()
user_input_nums
sum( iterable, start)
- 요소 모두 더하기, start로 초기값 가능
number = [[1, 2], [3, 4], [5, 6]]
#중첩 리스트 내 요소를 더한 후 리스트 내 요소 더하기
sum([sum(n) for n in number]) #[sum(n) for n in number] 결과: [3, 7, 11]
#결과: 21
#리스트 내 모든 요소를 가져와 하나씩 더하기
total_sum = 0
for sublist in number:
for num in sublist:
total_sum += num
print(total_sum)
#결과: 21
#초기값 설정하기
numbers = [1, 2, 3]
result = sum(numbers, 10) #초기값 10
result
#결과: 16
#문자열을 정수형으로 변환 후 합 구하기
str_numbers = ["10", "20", "30"]
result = sum(map(int, str_numbers))
result
#결과: 60
두 개 리스트 요소 더하기
#같은 길이의 리스트 요소 더하기
list1 = [1, 2, 3]
list2 = [4, 5, 6]
#zip() 사용
result = [x + y for x, y in zip(list1, list2)]
result
#결과: [5, 7, 9]
#numpy 사용
result = np.add(list1, list2)
print(result.tolist())
#결과: [5, 7, 9]
#요소 하나씩 각각 다 더하기
result = [x + y for x in list1 for y in list2]
result
#결과: [5, 6, 7, 6, 7, 8, 7, 8, 9]
#두 리스트의 길이 맞춘 후 더하기
list1 = [1, 2, 3]
list2 = [4, 5]
length = max(len(list1), len(list2))
list1.extend([0] * (length - len(list1))) 길이가 짧으면 0으로 확장
list2.extend([0] * (length - len(list2)))
result = [x + y for x, y in zip(list1, list2)]
print(result)
#결과: [5, 7, 3]