파이썬 자료형(정수형, 실수형, 리스트)

seoyeon·2023년 4월 2일
1

코딩테스트 python

목록 보기
3/11
post-thumbnail
post-custom-banner

수 자료형

  • 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 딕셔너리 등

정수형

  • 양의 정수, 음의 정수, 0
# 양의 정수
a = 1000

# 음의 정수
b = -7

# 0
c = 0

실수형

  • 소수점 아래의 데이터를 포함하는 수 자료형
a=157.93

b = -1837.2

# 0생략 가능
c= 5.

d = -.7
  • 고정된 크기의 메모리 할당 => 실수값 달라질 수 있ㅇㅁ
  • 해결방법 => round()함수를 사용하자
  • 123.456을 소수 셋째 자리에서 반올림하면
    round(123,456,2) => 소수점 자리 둘째자리까지
    결과 : 123.46

지수 표현 방식

  • e나 E를 이용한 지수 표현 방식을 이용할 수 있음
  • 1e9 : 10의 9제곱 (10억)
# 1,000,000,000
b = int(1e9)

# 752.5
a = 75.25e1

수 자료형의 연산

  • 나누기 연산자 /
    • 실수형으로 반환
  • 나머지 연산자 %
    • a가 홀수인지 체크할때
  • 몫 연산자 //
  • 거듭 제곱 연산자 **
a = 7
b = 3

a*b
a/b
a//b
a ** b

리스트 자료형

  • 여러개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
  • 뒤쪽에 데이터 붙이기 append()

리스트 초기화

  • 대괄호 안에 원소를 넣어서 초기화
  • list(), []를 이용 => 빈 리스트 선언
  • 리스트 원소에 접근할때 인덱스 값을 괄호에 넣음
# 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화

n=10
a = [0] * n

# [0,0,0,0,0,0,0,0,0,0]

리스트의 인덱싱과 슬라이싱

  • 인덱스 값을 입력하여 특정한 원소를 접근 하는 것
  • 양의 정수, 음의 정수 모두 사용 가능
  • 음의 정수 => 거꾸로 접근
a = [1,2,3,4,5,6]

a[-1]

a[3] = 7
  • 연속적인 위치 갖는 원소 가져올 때는 슬라이싱 이용
  • 대괄호 안에 콜론을 넣어서 시작 인덱스, 끝 인덱스 설정 가능
  • 끝 인덱스는 실제 인덱스보다 1을 더 크게 설정
a = [1,2,3,4,5,6,7,8,9]

# 2,3,4
print(a[1:4])

리스트 컴프리헨션

  • 리스트 초기화
  • 대괄호 안에 조건문, 반복문 적용
# 0,1,2,3,4,5,6,7,8,9
array = [i for i in range(10)]

# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
# 1,3,5,7,9,11,13,15,79,19
array2 = [i for i in range(20) if i % 2 ==1]

# 1부터 9까지들의 수들의 제곱 값을 포함하는 리스트
# 1,4,9,16,25,36,49, 64, 81
array3 = [i * i for i in range(1,10)]

리스트 컴프리헨션과 일반적인 코드 비교하기

  • 리스트 컴프리헨션은 2차원 리스트를 초기화할 때 효과적으로 사용
  • N * M의 크기의 2차원 리스트를 한번에 초기화 해야할 때 유용
  • n번 반복을 할 때마다 길이가 m인 리스트를 새롭게 초기화
    array = [[0]*m for _in range(n)]
  • 잘못된 예시 : array = [[0]*m]*n
    전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식

리스트 컴프리헨션으로 2차원 리스트 초기화 좋은예시

# N X M 크기의 2차원 리스트 초기화
# [0,0,0], [0,0,0], [0,0,0], [0,0,0]
n = 4
m = 3
array = [[0] * m for _ in range(n)]

리스트 컴프리헨션으로 2차원 리스트 초기화 나쁜예시

  • 내부적 리스트 같은 객체로 인식됨

언더바

반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 언더바(_)를 자주 사용함

# 1부터 9까지 더하기
summary=0
for i in range(1, 10):
	summary +=i
    
    
# Hello world 5번 출력
for _ in range(5):
	print("Hello World")

리스트 관련 메소드

  • append()
    변수명.append()
    리스트 원소 하나 삽입
  • sort
    정렬
    변수명.sort()
    변수명.sort(reverse=True)
  • reverse
    변수명.reverse()
    리스트 원소 순서 뒤집기
  • insert
    insert(삽입할 위치 인덱스, 삽입할 값)
    특정한 인덱스 위치에 원소 삽입
  • count
    변수명.count(특정 값)
    리스트에서 특정한 값을 가지는 데이터의 개수를 셀때
  • remove
    변수명.remove(특정값)
    특정값을 갖는 원소제거, 값을 가진 원소가 여러개면 하나만 제거
a = [1,4,3]
b = [1,4,3]

print("기본 리스트 : ", a)


# 리스트에 원소 삽입
a.append(2)
print("삽입 : ", a)

# 오름차순 정렬
a.sort()
print("오름차순 정렬 : ", a)

# 내림차순 정렬
a.sort(reverse=True)
print("내림차순 정렬 : ", a)

print("=======================")

# 리스트 원소 뒤집기
b.reverse()
print("원소 뒤집기 : ", b)

# 특정 인덱스에 데이터 추가
b.insert(2, 3)
print("인덱스 2에 3 추가: ", b)

# 특정 값인 데이터 개수 세기
print("값이 3인 데이터 개수 : ", b.count(3))

# 특정 값 데이터 삭제
b.remove(1)
print("값이 1인 데이터 삭제: ", b)

print("=======================")

c = [1,2,3,4,5,5,5]
remove_set = {3,5}  # 집합 자료형

# remove_set에 포함되지 않은 값만을 저장
result = [i for i in c if i not in remove_set]
print(result)
profile
항상 질문하는 개발자가 되고 싶습니다✋
post-custom-banner

0개의 댓글