no image
[Python] 튜플
튜플이란 튜플은 리스트와 동일한 형태 다른 점은 리스트와 다르게 변경이 불가능하다(read-only) 나머지 기능(인덱싱, 슬라이싱 등)은 리스트와 동일함 튜플은 소괄호()를 사용하여 정의 fruits = () #공백 튜플 생성 fruits = ("apple","banana","grape") #초기값을 가진 튜플 생성 result = fruits[1] # 인덱스를 사용해서 요소 접근 가능 튜플은 괄호 없이 항목을 쉼표로 분리하여도 자동으로 튜플을 생성함 fruits = ("apple","banana","grape") fruits = "apple", "banana", "grape" #괄호 없이 튜플 생성 튜플 생성 시 주의할 점 요소가 하나뿐인 튜플을 만들 때는 요소의 끝에 반드시 쉼표를 추가해야 함 쉼표..
2022.12.06
no image
[Python] 리스트(2)
이전 리스트에 관한 글을 읽고 싶다면 2022.12.06 - [Language/Python] - [Python] 리스트(1) [Python] 리스트(1) 리스트의 개요 리스트란? - 리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장됨 - 리스트의 크기는 항목의 개수가 증가(감소)하면 자동으로 증가(감소)함 -> 동적 rebugs.tistory.com 리스트 합병, 복제, 비교 리스트의 합병 및 복제 +연산자를 활용하여 2개의 리스트를 하나로 합병 가능 heroes1 = [ "아이언맨", "토르" ] heroes2 = [ "헐크", "스칼렛 위치" ] avengers = heroes1 + heroes2 # avengers는 ['아이언맨', '토르', '헐크', '스칼렛 위치']가..
2022.12.06
no image
[Python] 리스트(1)
리스트의 개요 리스트란? - 리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장됨 - 리스트의 크기는 항목의 개수가 증가(감소)하면 자동으로 증가(감소)함 -> 동적 할당 - 리스트는 어떤 타입의 항목이라도 저장할 수 있음 - 파이썬에서 리스트는 가장 많이 사용되는 데이터 구조 리스트 항목 접근하기 인덱스(index) : 리스트에서의 항목의 위치(번호) 0부터 시작(메모리 주소 계산의 편의성) 리스트의 항목 변경 list1 = ["가", "나", "다", "라", "마"] list1[2] = "안녕" #2번째 인덱스의 값 변경 print(list1) 출력 결과는 ['가', '나', '안녕', '라', '마']이다. 음수 인덱스 마지막 데이터에 대한 빠른 접근 허용 리스트의 마지막..
2022.12.06
no image
진수, 진법 변환, 보수
[진수] [10진수] 기수가 10인 수 0, 1, 2 ,3, 4, 5, 6 ,7, 8, 9 -> 10개 수로 표현 [2진수] 기수가 2인 수 0, 1 두개의 수로 표현 [8진수와 16진수] [8진수] 0~7까지 8개의 수로 표현 2진수 3자리는 8진수 1자리 2진수에 해당하는 8진수 8진수 0 1 2 3 4 5 6 7 2진수 000 001 010 011 100 101 110 111 [16진수] 0~9, A~F까지 16개의 기호로 표현 2진수 4자리는 16진수 1자리 10진수 0 1 2 3 4 5 6 7 16진수 0 1 2 3 4 5 6 7 2진수 0000 0001 0010 0011 0100 0101 0110 0111 10진수 8 9 10 11 12 13 14 15 16진수 8 9 A B C D E F 2..
2022.11.29
no image
금융용어정리 - 부동산 규제, LTV, DTI
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 부동산 규제, LTV, DTI 부동산 규제 돈 빌리기 쉬움 -> 부동산 수요 증가 -> 부동산 가격 상승 정부의 부동산 규제 : 부동산의 수요 증가를 막는다 -> 돈 빌리는 것을 어렵게 만든다(LTV와 DTI를 조정한다) 개념을 확장해서 물가가 상승하는 것은 물가의 수요가 증가하는 것이므로 이자(금리)를 높이면 물가 상승을 낮출 수 있다. 부동산을 규제하려면 LTV와 DTI를 낮춰야 한다. LTV Loan to Value ratio = 담보인정비율 = 주택담보대출비율 LTV의 기본적인 개념은 대출을 해서 부동산을 살 목적이라면 그 부동산을 보고 얼마..
2022.11.29
no image
금융용어정리 - 자사주, 자사주 매입, 자사주 소각
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 자사주, 자사주 매입, 자사주 소각 자사주 자사주는 회사가 가지고 있는 주식을 말한다. 자사주 매입 자사주는 대주주 또는 주주가 사는 주식이 아니다. Ex) 한 회사에서 대주주 A, B 씨가 있는데, A씨가 B씨의 주식을 사드리는 것은 자사주 매입이 아니다. 자사주 매입이란 회사가 A, B씨 또는 다른 주주의 주식을 사들이는 것이 자사주 매입이다. 자사주 매입은 수요의 증가가 아니라 공급의 감소이다. 한 회사가 1000주의 주식이 있는데 A씨에게 600주, B씨에게 400주를 팔았다고 가정하면, 회사는 시장에 주식이 너무 많이 풀려서 가치가 떨어진 ..
2022.11.28
no image
금융용어정리 - 보통주, 우선주, 후순위채권
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 보통주, 우선주, 후순위채권 보통주 표준이 되는 주식 (의무적으로 발행) -의결권 있음 -배당을 늦게 받음 -신주인수권 있음 잔여재산분배에 불리 우선주 -표준이 아닌 주식 (의무적으로 발행이 아님) -의결권 없음 -배당을 우선 받음 -신주인수권 없음 -잔여재산분배에 유리 보통주와 우선주 비교 보통주 우선주 의무적 발행 여부 의무적 발행임 의무적 발행 아님 의결권 의결권 있음 의결권 없음 배당 순위 우선주보다 후순위 보통주보다 우선 신주인수권 있음 없음 잔여재산분배 잔여재산분배에 불리 잔여재산분배에 유리 후순위 채권 파산 시에 잔여 재산을 채권자 ->..
2022.11.27
no image
금융용어정리 - 부도, 해산, 청산, 파산, 폐업
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 부도, 해산, 청산, 파산, 폐업 부도 빌린 돈을 못 갚는 것(부도가 났다고 해서 회사가 망한 것은 아니다) 해산 법인활동을 종료 청산 해산 시에 잔여재산 분배(자산 > 부채) 주주들끼리 남은 자산을 분배 파산 해산 시에 잔여재산 분배(자산 청산 or 파산 -> 해산 -> 법인등기부 폐쇄(법인격 소멸 완료)
2022.11.26

튜플이란

튜플은 리스트와 동일한 형태

다른 점은 리스트와 다르게 변경이 불가능하다(read-only)

  • 나머지 기능(인덱싱, 슬라이싱 등)은 리스트와 동일함
  • 튜플은 소괄호()를 사용하여 정의
fruits = () #공백 튜플 생성
fruits = ("apple","banana","grape") #초기값을 가진 튜플 생성

result = fruits[1] # 인덱스를 사용해서 요소 접근 가능

튜플은 괄호 없이 항목을 쉼표로 분리하여도 자동으로 튜플을 생성함

fruits = ("apple","banana","grape")
fruits = "apple", "banana", "grape" #괄호 없이 튜플 생성

 

 

튜플 생성 시 주의할 점

요소가 하나뿐인 튜플을 만들 때는 요소의 끝에 반드시 쉼표를 추가해야 함

쉼표가 없으면 튜플이 아니라 문자열로 인식함

single_tuple = ("apple",)
no_tuple = ("apple") #쉼표가 없으면 문자열임

튜플은 읽기만 가능

fruits = ("apple", "banana", "grape")
fruits[1] = "pear" #TypeError: "tuple" object does not support item assignment

 

튜플과 리스트 간 전환

생성자 함수를 사용하여 변환 가능

#리스트 -> 튜플
myList = [1,2,3,4]
myTuple = tuple(myList) # tuple()는  튜플을  생성하는  함수(생성자)이다.
print(myTuple)
#출력 결과 : (1,2,3,4)
myTuple = (1, 2, 3, 4)
myList = list(myTuple) # list()는  리스트를  생성하는  함수(생성자)이다.
print(myList)
출력 결과 : [1, 2, 3, 4]

 

튜플 연산

튜플은 한번 생성되면 요소의 추가 및 삭제 불가능함

하지만 += 연산자를 이용하여 다른 튜플을 추가하는 것은 가능함

->기존 튜플이 변경되는 것이 아닌 새로운 튜플을 만드는 것임

fruits = ("apple", "banana", "grape")
fruits += ("pear", "kiwi")
print(fruits)
#출력 결과 : ("apple", "banana", "grape", "pear", "kiwi")

+=연산자를 이용하여 리스트에 튜플을 추가할 수 있다

numbers = [10, 20, 30]
numbers += (40, 50)
print(numbers)
#출력 결과 : [10, 20, 30, 40, 50]

 

튜플 패킹과 언패킹

패킹은 여러 개의 항목을 합쳐서 튜플을 만드는 것을 뜻함

언패킹은 튜플에 저장된 데이터를 개별 변수로 푸는 것을 뜻함

자료형이 다른 경우에도 패킹과 언패킹이 가능하다

student = (“kim”, [3.1, 3.6, 4.0, 0.0])
name, grades = student #언패킹
print(name) # Kim
print(grades) # [3.1, 3.6, 4.0, 0.0]

튜플은 기본적으로 변경이 불가능하다고 위에서 언급했다

하지만 위의 예제에서 튜플의 요소로 리스트가 들어가 있는데,

이럴 경우 요소로 들어간 리스트에 대한 수정은 가능하다.

student[1][3] = 4.3 #가능
패킹과 언패킹을 활용해서 변수의 값 스왑 하기
n1 = 10 
n2 = 90
n1, n2 = (n2, n1)   # (90 10)​

 

enumerate()

enumerate()함수는 리스트 또는 튜플에 대해, 각 요소 별 (인덱스, 값) 형태의 튜플 반환

 

튜플은 왜 쓸까?

  • 변경 불가능 객체이기에 튜플을 통한 반복이 더 빠름
  • 변경 불가능 객체이기에 딕셔너리 키로 사용 가능
  • 다른 개발자가 특정 데이터를 변경하는 것을 금지 가능(보안성)
  리스트 튜플
문법 항목을 [ ]으로 감쌈 항목을 ( )으로 감쌈
변경여부 가능 불가능
메소드 약 46개의 메소드 지원 약 33개의 메소드 지원
용도 딕셔너리에서 키로 이용할 수 없음 딕셔너리에서 키로 이용할 수 있음

 

'Python Category > Python' 카테고리의 다른 글

[Python] 문자열  (1) 2022.12.08
[Python] 딕셔너리  (0) 2022.12.07
[Python] 세트  (0) 2022.12.07
[Python] 리스트(2)  (0) 2022.12.06
[Python] 리스트(1)  (0) 2022.12.06

이전 리스트에 관한 글을 읽고 싶다면

2022.12.06 - [Language/Python] - [Python] 리스트(1)

 

[Python] 리스트(1)

리스트의 개요 리스트란? - 리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장됨 - 리스트의 크기는 항목의 개수가 증가(감소)하면 자동으로 증가(감소)함 -> 동적

rebugs.tistory.com


리스트 합병, 복제, 비교

리스트의 합병 및 복제

+연산자를 활용하여 2개의 리스트를 하나로 합병 가능
heroes1 = [ "아이언맨", "토르" ]
heroes2 = [ "헐크", "스칼렛 위치" ] 
avengers = heroes1 + heroes2 
# avengers는 ['아이언맨', '토르', '헐크', '스칼렛 위치']가 됨​


*연산자를 활용하여 복제 후 합병 가능

numbers = [ 1, 2, 3, 4 ] * 3  
# 리스트는 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]


리스트 초기화에 활용

numbers = [ 0 ] * 12                             
# 리스트는 [0,0,0,0,0,0,0,0,0,0,0,0]

 

리스트 비교

비교 연산자 == , !=, >, < 를 사용하여 리스트 간 비교 가능
list1 = [ 1, 2, 3 ] 
list2 = [ 1, 2, 3 ]
print(list1 == list2) #True

list1 = [ 3, 4, 5 ]
list2 = [ 1, 2, 3 ]
print(list1 > list2) #첫번째 인덱스만 비교함
#출력 결과는 True
for  i in range(3): #모든 인덱스 비교
    print(list1[i] > list2[i])
#출력 결과는
#False
#False
#False​

 

리스트 복사 : 얕은 복사(shallow copy)

temps = [28, 31, 33, 35, 27, 26, 25] 
values = temps

temps: temps리스트의 시작항목의 주소
values: temps리스트의 시작항목의 주소
temps, values 둘 다 같은 공간을 참조하고 있음
temps = [28, 31, 33, 35, 27, 26, 25] 
values = temps      #얕은 복사 (shallow copy)
print(temps)
values[3] = 39
print(temps)
#[28, 31, 33, 35, 27, 26, 25]
#[28, 31, 33, 39, 27, 26, 25]

둘 다 같은 공간을 참조하기 때문에 한 쪽만 값을 바뀌어도 둘 다 값이 바뀌게 된다.

 

리스트 복사 : 깊은 복사(deep copy)

temps = [28, 31, 33, 35, 27, 26, 25] 
values = list(temps) #복사 생성자 활용

list의 복사 생성자를 활용하면 깊은 복사를 할 수 있다.

이렇게 하면 한 공간을 참조하지 않기 때문에 한쪽 값을 바꾸어도 다른 쪽은 영향을 받지 않는다.

 

슬라이싱

기본 슬라이싱

슬라이싱이란 리스트에서 한 번에 여러 개의 항목을 추출하는 기법이다.
리스트[start : stop]
numbers = [10, 20, 30, 40, 50, 60, 70, 80, 90]
sublist = numbers[2:7]

2번째 인덱스(30) 에서 6번째 인덱스까지(70)([2:7]에서 7은 포함하지 않는다) 추출한다는 뜻이다

 

시작과 끝 인덱스는 생략이 가능하다
numbers= [10,20,30,40,50,60,70,80,90]
numbers[:3] # [10, 20, 30]
numbers[3:] # [40, 50, 60, 70, 80, 90]
numbers[:] # [10, 20, 30, 40, 50, 60, 70, 80, 90]
깊은 복사의 또 다른 방법
new_numbers = numbers[:]​

 

고급 슬라이싱

슬라이싱을 할 때 단계 지정이 가능
리스트[start:stop:step]
numbers= [10,20,30,40,50,60,70,80,90]
numbers[2:7:2] # [30, 50, 70]

 

음수 단계를 사용하여 리스트 역순화
numbers = [ 10, 20, 30, 40, 50, 60, 70, 80, 90 ]
numbers[:: -1]
#[90, 80, 70, 60, 50, 40, 30, 20, 10]​


리스트 변경

lst = [1, 2, 3, 4, 5, 6, 7, 8]
lst[0:3] = ['white', 'blue', 'red']
#lst : ['white', 'blue', 'red', 4, 5, 6, 7, 8]​
lst = [1, 2, 3, 4, 5, 6, 7, 8]
lst[:] = [ ]
#lst : []​
lst = [1, 2, 3, 4, 5, 6, 7, 8]
del lst[0:2]
lst : [3, 4, 5, 6, 7, 8]​
파이썬에서 문자열은 문자들이 모여있는 리스트이다.
s = "Monty Python"
print(s[0]) #M
print(s[6:10]) #Path
print(s[-12:-7]) #Monty​

 

2차원 리스트

2차원 리스트란

2차원 리스트는 1차원 리스트가 행과 열을 이루어 모여있는 것

정적 할당 2차원 리스트

2차원 리스트 구현(정적 할당)
-각각의 행들이 하나의 리스트 형태로 저장
-각각의 행에 대한 레퍼런스(주소)가 하나의 리스트 형태로 저장
s = [
	[ 1, 2, 3, 4, 5 ] ,
	[ 6, 7, 8, 9, 10 ], 
	[11, 12, 13, 14, 15 ] 
    ]​

 

동적 할당 2차원 리스트

2차원 리스트의 동적 할당
rows = 3 
cols = 5
s = [ ]
for row in range(rows): 
	s += [[0]*cols] # 1차원  리스트끼리  순차적으로  합쳐짐
print("s =", s)
# [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]​

 

2차원 리스트 요소 접근

s = [[ 1, 2, 3, 4, 5 ] ,[ 6, 7, 8, 9, 10 ], [11, 12, 13, 14, 15 ] ]
print(s[1][1]) #7
print(s[2][1]) #12
#7
#12

2차원 리스트의 구현

s = [[ 1, 2, 3, 4, 5 ] ,[ 6, 7, 8, 9, 10 ], [11, 12, 13, 14, 15 ] ]

rows = len(s)
cols = len(s[0])

for r in range(rows):
  for c in range(cols):
    print(s[r][c], end=",")
  print( )

출력결과

 

리스트와 함수

일반적 프로그래밍 언어에서 함수의 인수 전달 방식
값으로 호출 (call by value)
참조로 호출 (call by reference)

불변 객체(int, float, tuple, string등)

파이썬에서는?
불변 객체(int, float, tuple, string등) :
객체의 참조값이 함수의 매개 변수로 전달되지만
함수 안에서 객체의 값을 변경하면 새로운 객체가 생성 (call by value형태)

 

가변 객체 (리스트)

가변 객체 (리스트) :
참조값으로 전달되며, 함수 내에서 리스트의 변경이 가능 (call by reference)

 

2차원 리스트를 함수로 넘기기

2차원 배열의 총 합을 구하는 함수

def sum(numbers) :
  total = 0
  for i in range(len(numbers)) :
    for j in range(len(numbers[0])) :
      total = total + numbers[i][j]
  return total
  
s = [[ 1, 2, 3, 4, 5 ] ,[ 6, 7, 8, 9, 10 ], [11, 12, 13, 14, 15 ] ]
print(sum(s))

출력 결과 : 120

'Python Category > Python' 카테고리의 다른 글

[Python] 문자열  (1) 2022.12.08
[Python] 딕셔너리  (0) 2022.12.07
[Python] 세트  (0) 2022.12.07
[Python] 튜플  (0) 2022.12.06
[Python] 리스트(1)  (0) 2022.12.06

리스트의 개요

리스트란?

- 리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장됨
- 리스트의 크기는 항목의 개수가 증가(감소)하면 자동으로 증가(감소)함 -> 동적 할당
- 리스트는 어떤 타입의 항목이라도 저장할 수 있음
- 파이썬에서 리스트는 가장 많이 사용되는 데이터 구조

리스트 항목 접근하기

  • 인덱스(index) : 리스트에서의 항목의 위치(번호)
  • 0부터 시작(메모리 주소 계산의 편의성)

 

리스트의 항목 변경

list1 = ["가", "나", "다", "라", "마"]
list1[2] = "안녕" #2번째 인덱스의 값 변경
print(list1)

출력 결과는 ['가', '나', '안녕', '라', '마']이다.

 

음수 인덱스

마지막 데이터에 대한 빠른 접근 허용

리스트의 마지막 데이터에 접근하는 2가지 방법

  • list1[-1]
  • list1[len(list1)-1]

 

리스트 접근

리스트 안에 저장된 요소들을 모두 접근하기 위해서는?

  • 첫 번째 방법 : 인덱스 값을 사용하여 접근
list1 =[28,31,33,35,27,26,25]
for  i in  range(len(list1)):
	print(list1[i], end=', ') #end=',’는  출력  후  엔터  대신  ,를  붙임

 출력 결과는 28, 31, 33, 35, 27, 26, 25,

  • 두 번째 방법 : 인덱스 값이 필요 없다면 for-each 루프 사용
list1 =[28,31,33,35,27,26,25] 
for  element in  list1:
    print(element, end=', ')

 출력 결과는 28, 31, 33, 35, 27, 26, 25,

 

 

zip() 함수

zip() 함수는 2개의 리스트를 받아서 항목 2개를 묶어서 제공함

questions =['name','quest','color'] 
answers =['Kim','파이썬','blue']
for  q, a  in  zip(questions, answers): 
    print(f"What is your {q}? It is {a}")

출력 결과

What is your name? It is Kim
What is your quest? It is 파이썬
What is your color? It is blue

리스트의 연산

append()

새로운 요소를 리스트의 맨 끝에 추가

heroes = [ ] 
heroes.append("아이언맨")
heroes.append("토르") 
print(heroes)

실행 결과 : ['아이언맨', '토르']

insert()

지정된 위치에 요소를 추가

index()

특정 항목이 리스트에 어느 위치에 있는지 확인

heroes = [ “아이언맨”  , “토르”  , “헐크”, “스칼렛  위치”, “헐크” ]
n = heroes.index(“헐크”) #n은 2가 됨

탐색 시작 위치 지정 가능

heroes = [ "아이언맨", "토르", "헐크", "스칼렛  위치", "헐크" ]
n = heroes.index("헐크", 3) #n은 4가 됨

탐색하고자 하는 항목이 리스트에 없으면 오류가 발생한다는 것을 주의해야 함

 

in 연산자

리스트 안에 특정 항목이 있는지 알기 위함

l_list = [0,1,2,3,4,5,6,7,8,9]
if 5 in l_list: #5가 리스트에 있다면
	print("5는 리스트에 있습니다")
else:
	print("5는 리스트에 없습니다")

 

not in 연산자

리스트 안에 특정 항목이 없는지 알기 위함

l_list = [0,1,2,3,4,5,6,7,8,9]
if 10 not in l_list: #리스트에 10이 없다면
	l_list.append(10) #리스트에 10 추가
else:
	print("10는 리스트에 이미 있습니다.")

 

pop(), remove()

pop(i) : 리스트에서 i번째 항목을 삭제하여 반환

(i가 없으면 마지막 데이터 삭제 후 반환)

remove() : 리스트에서 지정된 값을 삭제, 값을 반환하진 않음

heroes = [ "아이언맨", "토르", "헐크" ]
heroes.remove("토르")

삭제하고자 하는 항목이 없다면 오류(예외)가 발생

 

리스트 항목의 최댓값과 최솟값

max()와 min()은 내장 함수로서 거의 모든 객체에 사용 가능

values = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
min(values) # 1 반환
max(values) # 10 반환

 

리스트의 정렬

메소드 사용

a = [ 3, 2, 1, 5, 4 ]
a.sort() #[1,2,3,4,5] #오름차순으로 정렬
heroes =['아이언맨','헐크','토르']
heroes.sort()
# ['아이언맨', '토르', '헐크']
a = [ 3, 2, 1, 5, 4 ]
a.sort(reverse = True) #[5,4,3,2,1] #내림차순으로 정렬

내장 함수 사용

numbers =[10,3,7,1,9,4,2,8,5,6] 
ascending_numbers = sorted(numbers)
print(ascending_numbers)

 

리스트 메소드 정리

메소드 설명
append() 요소를  리스트의  끝에  추가
extend() 리스트의  모든  요소를  다른  리스트에  추가
insert() 지정된  위치에  항목을  삽입
remove() 리스트에서  항목을  삭제
pop() 지정된  위치에서  요소를  삭제하여  반환
clear() 리스트로부터  모든  항목을  삭제
index() 일치되는  항목의  인덱스를  반환
count() 인수로  전달된  항목의  개수를  반환
sort() 오름차순으로  리스트  안의  항목을  정렬
reverse() 리스트  안의  항목의  순서를  반대로  함
copy() 리스트의  복사본을  반환
round() 주어진  자리수대로  반올림한  값을  반환
reduce() 특정한  함수를  리스트  안의  모든  요소에  적용하여 결과값을  저장하고  최종  합계값만을  반환
sum() 리스트  안의  숫자들을  모두  더함
ord() 유니코드  문자의  코드값을  반환
cmp() 첫  번째  리스트가  두  번째  보다  크면  1을  반환
max() 리스트의  최대값을  반환
min() 리스트의  최소값을  반환
all() 리스트의  모든  요소가  참이면  참을  반환
any() 리스트  안의  한  요소라도  참이면  참을  반환
len() 리스트의  길이를  반환
enumerate( ) 리스트의  요소들을  하나씩  반환하는  객체를  생성
accumulate( ) 특정한  함수를  리스트의  요소에  적용한  결과를  저장하는  리스 트를  반환
filter( ) 리스트의  각  요소가  참인지  아닌지를  검사
map( ) 특정한  함수를  리스트의  각  요소에  적용하고  결과를  담은  리 스트를  반환

 


리스트에 대해 더 알고 싶다면

2022.12.06 - [Language/Python] - [Python] 리스트(2)

 

[Python] 리스트(2)

리스트 합병, 복제, 비교 리스트의 합병 및 복제 +연산자를 활용하여 2개의 리스트를 하나로 합병 가능 heroes1 = [ "아이언맨", "토르" ] heroes2 = [ "헐크", "스칼렛 위치" ] avengers = heroes1 + heroes2 # avenger

rebugs.tistory.com

 

'Python Category > Python' 카테고리의 다른 글

[Python] 문자열  (1) 2022.12.08
[Python] 딕셔너리  (0) 2022.12.07
[Python] 세트  (0) 2022.12.07
[Python] 튜플  (0) 2022.12.06
[Python] 리스트(2)  (0) 2022.12.06

진수, 진법 변환, 보수

ReBugs
|2022. 11. 29. 03:14

[진수]

[10진수]

기수가 10인 수

0, 1, 2 ,3, 4, 5, 6 ,7, 8, 9 -> 10개 수로 표현

[2진수]

기수가 2인 수

0, 1 두개의 수로 표현

 

[8진수와 16진수]

[8진수]

0~7까지 8개의 수로 표현

2진수 3자리는 8진수 1자리

2진수에 해당하는 8진수

8진수 0 1 2 3 4 5 6 7
2진수 000 001 010 011 100 101 110 111

[16진수]

0~9, A~F까지 16개의 기호로 표현

2진수 4자리는 16진수 1자리

10진수 0 1 2 3 4 5 6 7
16진수 0 1 2 3 4 5 6 7
2진수 0000 0001 0010 0011 0100 0101 0110 0111
10진수 8 9 10 11 12 13 14 15
16진수 8 9 A B C D E F
2진수 1000 1001 1010 1011 1100 1101 1110 1111

다음 8진수와 16진수를 10진수로 변환하시오
(a)475.26(8) (b)A91.CD(16)

[진법 변환]

[10진수-2진수 변환]

정수부분과 소수부분으로 나누어 변환

정수부분은 2로 나누고, 소수부분은 2를 곱한다

[10진수-8진수 변환]

8로 나누고, 곱한다.

[10진수-16진수  변환]

[10진수-n진수 변환]

정수부는 n으로 나누고, 소수부는 n으로 곱해준다.

정리하자면..........

[2진수 정수 연산과 보수]

[2진수  양의  정수  덧셈]

0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10 (자리올림 발생)

[보수]

최상위비트(MSB)를 부호비트로 사용

양수는 0으로, 음수는 1로 나타낸다.

 

[1의 보수]

0을 1로 바꾸고, 1을 0으로 바꾼다.

[2의 보수]

1의 보수에 더하기 1을 하면 2의 보수가 된다.

[9의 보수]

567의 9의 보수 :  999 - 567 = 432

 

[10의 보수]

567의 10의 보수 : 1000 - 567 = 433

'기타' 카테고리의 다른 글

카멜 케이스, 파스칼 케이스, 스네이크 케이스  (0) 2023.07.03
향상된 for문  (0) 2023.02.13
순서도(Flowchart)  (0) 2023.01.16
BCD 코드와 3초과 코드  (1) 2022.12.24
벤포드의 법칙(with 파이썬)  (1) 2022.11.23

본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는  글임을 알립니다.


금융용어정리 - 부동산 규제,  LTV, DTI

부동산 규제

돈 빌리기 쉬움  ->  부동산 수요 증가 -> 부동산 가격 상승

정부의 부동산 규제 : 부동산의 수요 증가를 막는다 -> 돈 빌리는 것을 어렵게 만든다(LTV와 DTI를 조정한다)

개념을 확장해서 물가가 상승하는 것은 물가의 수요가 증가하는 것이므로 이자(금리)를 높이면 물가 상승을 낮출 수 있다.

부동산을 규제하려면 LTV와 DTI를 낮춰야 한다.

 

LTV

Loan to Value ratio = 담보인정비율 = 주택담보대출비율

LTV의 기본적인 개념은 대출을 해서 부동산을 살 목적이라면 그 부동산을 보고 얼마를 빌려줄지 결정한다는 것이다.

예를 들어서

LTV 60% : 건물이 1억원이면 6천만 원까지만 대출 가능

LTV 50% : 건물이 1억원이면 5천만 원까지만 대출 가능

 

DTI

Debt To Income Ratio = 총부채상환비율

DTI의 기본 개념은 소득과 현재 다른 부채를 보고 대출을 해줄지 말지 결정한다는 것이다.

대출 기간이 10년이고, 대출원금이 9천만원, 이자가 천만 원 = 총 갚아야 할 원리금이 1억원

그렇다면 매년 갚아야 할 원리금이 천만 원이다.

DTI는 매년 갚아야 할 원리금을 중점적으로 본다

 

위의 개념을 가지고 예를 들면

A씨는 연소득이 3천만원이고, B씨는 연소득이 800만원이면, A씨는 돈을 갚을 여력이 충분하다고 판단하고 9천만을 빌려줄 수 있다.

DTI = 매년 갚을 돈 / 연소득 이므로

B씨는 DTI50%면 원리금 4천만 원을 빌릴 수 있다.

->400만 원 / 800만 원 = 0.5

DTI50%이고, A씨는 이미 다른 대출을 받아서 매년 갚아야 할 원리금 400만 원이 있다면, 추가로 대출 가능한 금액은 원리금 6000만원이다.

따라서 매년 갚아야 할 원리금이 총 천만 원이 된다.

결론은 LTV와 DTI를 낮추면 대출이 어려워지므로 부동산의 수요가 감소하므로 부동산의 가격이 내려간다.

본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는  글임을 알립니다.


금융용어정리 - 자사주, 자사주 매입, 자사주 소각

자사주

자사주는 회사가 가지고 있는 주식을 말한다.

 

자사주 매입

자사주는 대주주 또는 주주가 사는 주식이 아니다.

Ex) 한 회사에서 대주주 A, B 씨가 있는데, A씨가 B씨의 주식을 사드리는 것은 자사주 매입이 아니다.

자사주 매입이란 회사가 A, B씨 또는 다른 주주의 주식을 사들이는 것이 자사주 매입이다.

 

자사주 매입은 수요의 증가가 아니라 공급의 감소이다.

한 회사가 1000주의 주식이 있는데 A씨에게 600, B씨에게 400주를 팔았다고 가정하면, 회사는 시장에 주식이 너무 많이 풀려서 가치가 떨어진 것 같아서, 회사가 A, B 씨에게서 각각 100주를 다시 샀다. 이 현상은 수요의 증가가 아니라 공급의 감소이다.

공급의 감소는 가격의 증가로 이어진다.

 

자사주 소각

자사주 매입으로 회수한 주식을 소각하는 것

자사주 소각과 배당의 차이점은 배당은 주식의 수가 감소하지 않고 주가가 하락하지만,

자사주 소각은 주식의 수가 감소하고 주가는 하락하지 않는다는 것이다.

자사주 소각을 하면 주주의 의결권이 더 강해진다.

 

저금리 시대의 자사주 매입과 버블

자사주 매입은 회사가 자신의 회사의 주식을 매입하여 주가를 올리는 행위이다.

이는 거품이 낄 수도 있는 우려가 있다.

저금리 시대에 낮은 금리로 대출을 하여 자사주 매입을 하면, 상당히 많이 버블이 형성될 수 있다.

또한 저금리에서 고금리로 바뀐다면 회사는 위험해질 것이다.

 

 

본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는  글임을 알립니다.


금융용어정리 - 보통주, 우선주, 후순위채권

보통주

표준이 되는 주식 (의무적으로 발행)

-의결권 있음

-배당을 늦게 받음

-신주인수권 있음

잔여재산분배에 불리

 

우선주

-표준이 아닌 주식 (의무적으로 발행이 아님)

-의결권 없음

-배당을 우선 받음

-신주인수권 없음

-잔여재산분배에 유리

 

보통주와 우선주 비교

  보통주 우선주
의무적 발행 여부 의무적 발행임 의무적 발행 아님
의결권 의결권 있음 의결권 없음
배당 순위 우선주보다 후순위 보통주보다 우선
신주인수권 있음 없음
잔여재산분배 잔여재산분배에 불리 잔여재산분배에 유리

 

후순위 채권

파산 시에 잔여 재산을 채권자 -> 우선주 -> 보통주 순으로 준다.

채권 발행기업이 파산했을 때, 채무 변제 순위에서 일반 채권보다는 순위에서 떨어지고, 우선주나 보통주보다는 우선하는 채권이 후순위 채권이다.

일반 채권보다 채무 변제 순위에 떨어지므로 이자율이 일반 채권보다 높다.

 

본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는  글임을 알립니다.


금융용어정리 - 부도, 해산, 청산, 파산, 폐업

부도

빌린 돈을 못 갚는 것(부도가 났다고 해서 회사가 망한 것은 아니다)

 

해산

법인활동을 종료

 

청산

해산 시에 잔여재산 분배(자산 > 부채)

주주들끼리 남은 자산을 분배

 

파산

해산 시에 잔여재산 분배(자산 < 부채)

파산법에 의해 채권자들에게 자산을 분배

 

파산

사업자등록 말소

폐업을 했다고 해서 법인격이 없어지는 것이 아니다.

그냥 어떤 사업하다가 장사가 잘 안돼서 폐업하고 같은 법인격으로 다른 사업을 할 수 있다.

 

법인의 탄생과 죽음

법인 설립 -> 청산 or 파산 -> 해산 -> 법인등기부 폐쇄(법인격 소멸 완료)