Python - 2

윤기나는코딩·2023년 3월 9일
0

Python

목록 보기
3/16
  • 집합 자료형 : str, list, tuple, set, dict
  1. 문자열 : str - 순서 o: 인덱싱(하나의 값만 참조), 슬라이싱(여러값 참조)이 가능 , 수정 x
s="sequence"
print(s, type(s), len(s))
print(s.count('e'))
print(s.find('e'), '', s.find('e',3), s.rfind('e'))# rfind- 뒤에서부터
# 수정 불가
ss='mbc'
print(ss, id(ss))
ss='abc'
print(ss, id(ss))
  1. 인덱싱, 슬라이싱 대상[start:stop:step]
s='sequence'
print(s[0], s[3]) # s[8] err남
print(s[-1], s[-3])

print(s[0:3], s[3:], s[:3], s[:], s[1:5:2], s[::2]) 
#0 이상 3 미만, 3자리 이후로, 3자리 까지, 몽땅 다, 1이상 5미만 증가치2, 모든 글자에서 2번째는 빼고 
print(s[-4:-1], s[-3:])
print('fre' + s[2:]) # 일부의 값만 참조
print()
s2='kbs mbc'
s2=' ' + s2[:4] + 'sbs ' + s2[4:] + ' '
print(s2, len(s2))
print(s2.strip()) # strip() -> 인자를 전달하지 않으면 String에서 공백을 제거한다.
                  # lstrip() -> 인자로 전달된 문자를 왼쪽에서부터 제거한다.
                  # rstrip() -> 인자로 전달된 문자를 오른쪽에서부터 제거한다.

s3=s2.split(sep=' ') #split() -> 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수이다.
print(s3)
print(':'.join(s3)) #join -> ':'(매개변수로 들어온)를 넣어서 문자열을 합쳐서 반환해주는 함수

a='life is too long'
b=a.replace('life', 'Your leg')
print(b)
  1. 묶음형(집힙형) 자료형 : list - 순서 o, 수정 가능
a= [1,2,3]; b=[10, a, 12.5,  True, '금쪽이']
print(a, type(a), id(a))
print(b, type(b), id(b))
aa =[]
bb= list()
print(type(aa), type(bb))
family=['엄마','아빠','나','형']
print(family[2]) # 인덱싱
print(family[0:2])# 슬라이싱- 0~1번까지
family.append('단풍이') # append() - 추가 - 맨뒤에 붙음
family.insert(0, '할아버지') # 삽입 - 0번째에 넣어라
family.extend(['외삼촌', '큰누나']) #추가
family += ['작은이모', '큰이모'] 
family.remove('단풍이') # remove는 밸류를 삭제 
del family[2] # del은 순서에 의한 삭제,  아빠 지워짐 - 2번째 지워짐
print(family, len(family))
print(family.index('나'))
print('엄마' in family, '할머니' in family) # 있는지 확인하는거 
del family # 변수를 삭제
  • 중첩 list
aa =[1,2,3,['a', 'kbs', 'c'],4,5] #중첩 list
print(aa)
print(aa[0])
print(aa[3])
print(aa[3][1]) # 3번째 꺼에서 1번째 꺼 - kbs만 나옴

print(id(aa))
aa[0] = 333 # 요소값 수정 가능
print(aa, id(aa))


print()
aa2=['123', '34', '234']
print(aa2)
aa2.sort() # 사전형식으로 정렬
print(aa2)
aa2.sort(key=int, reverse=True) # 문자를 숫자처럼 하고 가장 큰수부터 나열 
print(aa2)
name=['소현', '금쪽이', '다정']
print(name)
name2 = name   # 얕은 복사 : 주소 치환 / 자바 와 파이썬은 소멸자가 없다 (일정시간이 지나면 메모리가 자동 소멸)
print(id(name), id(name2))

import copy
name3 =copy.deepcopy(name) # 깊은 복사. 새로운 객체로 생성

print(id(name), id(name2), id(name3))
name[0] = '용환'
print(name)
print(name2)
print(name3)
  • 참고
print("stack, queue") #stack : LiFO(last),  queue : FiFO(first)
sbs=[1,2,3]
sbs.append(4)
print(sbs)
sbs.pop()
print(sbs)
sbs.pop()
print(sbs) #뒤에서 부터 빠져나감.

print()
sbs=[1,2,3]
sbs.append(4)
sbs.pop(0)
print(sbs)
sbs.pop(0)
print(sbs) #앞에서 부터 빠져나감.
  1. tuple - list와 유사하나 읽기 전용. 순서O, 수정 불가
t = ('a', 'b', 'c', 'a')
#t = 'a', 'b', 'c', 'a' 
print(t, type(t),len(t), t.count('a'), t.index('b'))

print(t[0])
#t[0] = 'k' # 'tuple' object does not support item assignment - 수정 불가

imsi =list(t)
print(imsi, type(imsi))
imsi[0] = 'k'
t = tuple(imsi)
print(t)

print()
print((1), type((1)))
print((1,), type((1,))) # ,를 찍어야 튜플로 인정된다(반드시).

print()
t1=(10,20)
a, b = t1
b, a = a, b
t2 =a,b
print(t2)
  1. set - 순서가 없다, 중복이 불가하다! (순서X, 중복X)
print('----------set-----------')
# set - 순서가 없다, 중복이 불가하다! (순서X, 중복X)
a={1,2,3,1}
print(a, type(a), len(a))

b={3,4}

print(a.union(b)) # 합집합
print(a.intersection(b)) # 교집합
print(a-b)   # 차집합
print(a | b) # 합집합
print(a & b) # 교집합

print()
print(a)
#print(a[0]) -> err 순서가 없기 때문에 에러발생
#a[0]=100 -> 'set' object does not support item assignment - set은 순서가 없다

a.update({4,5}) # .update함수를 통해 수정이(추가) 가능함.
a.update([6,7,8])
a.update((9,))
print(a)

a.discard(3) # 값에 의한 삭제(순서에 의한 삭제는 없다)
a.remove(5)  # 값에 의한 삭제
a.discard(3) # 값에 의한 삭제 - 해당 값이 없으면 통과한다.
#a.remove(5) # 값에 의한 삭제 - 해당 값이 없으면 에러가 발생한다.
print(a)

c=set()
c=a
print(c)
a.clear() # 날리는거
print(a)
print(c)

print()
li=[1,2,3,1,2,3]
print(li)
imsi=set(li) # 중복 배제
li=list(imsi) 
print(li)
  1. dict : {'key':'value'} - 순서X, key를 이용해 value를 참조, JSON과 잘맞음
print('----------dict-----------')
# 사전형 : {'key':'value'} - 순서X, key를 이용해 value를 참조, JSON과 잘맞음

my = dict(k1=1,k2='mbc', k3=3.4)
print(my, type(my))

dic={'파이썬':'뱀', '자바':'커피', '스프링':'용수철', '점수':[60,70,80]}
print(dic, type(dic), len(dic))
print(dic['자바'])
#print(dic[0])  -> 순서가 없어서 err발생

dic['오라클']='예언자' # 추가 가능함
print(dic)

del dic['오라클'] # 삭제
dic.pop('파이썬')
print(dic)

dic['자바']='웹용언어' # 수정이 가능
print(dic)

print(dic.keys())
print(dic.values())
print('파이썬' in dic)
  • 정리
'''
str : 순서O, 수정X
list: 순서O, 수정O []
tuple:순서O, 수정X ()
set : 순서X, 수정X, 중복X {}
dict: 순서X, 키에 의한 value 참조 {:}
'''
profile
꾸준히 정리해서 공부한것을 올려보자!

0개의 댓글