스터디

[파이썬 벼락치기] List | Tuple | Set | Dictionary

imgani 2023. 8. 13. 00:15

- 기간 : 2023-08-11 ~ 08-13 (2,3일차)

1. List

# 리스트 활용

li = ['a','b','c','d','e']

li.index('c') # 위치 찾기

li.append('f') # 추가하기1 - 맨 뒤에
li.insert(0,'aa') # 추가하기2 - 원하는 곳에

li.remove('aa') # 삭제하기1
del li[0] # 삭제하기2 - 위치로 삭제

'b' in li # 리스트에 있는지 확인

len(li) # 리스트 개수 확인

li.count('b') # 리스트 안의 문자 개수 세기

 

num = [1,2,3,4,5,9,7,6,8,10]

sum(num) # 합계
min(num) # 최소값
max(num) # 최대값

num.reverse() # 역순 만들기

num.sort()              # 오름차순 정렬
num.sort(reverse=True)  # 내림차순 정렬

2. Tuple 

# 튜플 활용

tu = ('a', 'b', 'c')

tu.index('a') # 위치 찾기
'b' in tu # 튜플 안에 있는지 확인하기
len(tu) # 전체 개수
tu.count('a') # 개수 세기

num = (5,7,9)
n1,n2,n3 = num # 변수 할당하기

a = '안녕'
b = '미니'
(a,b) = (b,a) # 값 교환하기

li = ['a','b','c','d','e','f']
tuple(li) # 리스트 -> 튜플

tu = ('a','b','c')
list(tu) # 튜플 -> 리스트

 

3. Set

  • 세트 만들기
se = set()
se = {} # 사용 불가능 -> 딕셔너리때문에
  • 특징
a = {2,4,6,8}
a
{8, 2, 4, 6} # 특징(1) 순서 x

b = {1, 1, 2, 5, 5}
b
{1, 2, 5} # 특징(2) 중복 x
  • 활용
a = {2,4,5,8}

a.add(3)    # 추가하기
a.remove(8) # 삭제하기
2 in a      # 확인하기
len(a)      # 전체 개수
sum(a)      # 합 구하기
min(a)      # 최소값 찾기
max(a)      # 최대값 찾기

a1 = list(a) # 리스트 만들기
a2 = tuple(a1) # 튜플 만들기
a = {1,2,3}
b = {2,3,4}

a&b # 교집합
a|b # 합집합
a-b # 차집합
a^b # 대칭 차집합

4. Dictionary

  • 형태 : { 키:값, 키:값, 키:값 }
  • 특징
# 딕셔너리 특징

dic = { 'a':10, 'b':20, 'c':30 }

dic[0] # 인덱스 사용 불가
dic['a'] # 키로 값에 접근
dic['d'] = 40 # 키:값 형태로 추가 가능
  • 활용
del dic['a']    # 삭제하기
dic.clear()     # 전체 삭제
'a' in dic      # 확인하기 (키 기준)
len(dic)        # 전체 개수

dic.keys()      # 모든 키 얻기
dic.values()    # 모든 값 얻기
dic.items()     # 모든 순서쌍 얻기

5. 리스트의 활용

  • 문자열 입력받기
# 문자 입력받아 공백 기준 자르기
li1 = input('입력하세요: ').split()
print(li1)

# 문자 입력받아 전체 자르기
li2 = list(input('입력하세요: '))
print(li2)
  • 숫자 입력받기
# 숫자 하나씩 입력받기
li3 = []

li3.append(int(input('숫자 입력: ')))
li3.append(int(input('숫자 입력: ')))
li3.append(int(input('숫자 입력: ')))

# 숫자 여러개 입력받기

li4 = list(map(int,input('숫자 여러개 입력: ').split()))

 

6. 리스트와 제어문

  • 리스트와 for문
# for문으로 리스트 값 추가

li = []

for i in range(10) :
    li.append(int(input('숫자입력: ')))
    
# for문으로 리스트 값 하나씩 출력

li = [1, 2, 3, 4, 5, 6]

for i in range(len(li)) :
    print(li[i])

for i in li :
    print(i)

 

  • 리스트 분리하기
# 리스트 분리하기 - 문자 입력 받고 분리해서 리스트 만들기

li = list(input('문자입력: '))

up = []
low = []

for i in li :
    if i.isupper() :
        up.append(i)
    elif i.islower() :
        low.append(i)

print(up)
print(low)