시퀀스 자료형
숫자, 문자열 리스트
논리형
문자열 과 리스트는 시퀀스 자료형이다.
순서가 있는 자료형! 리스트, 문자열이 등이 이에 속함
a= "Once" #문자열
b = ['T, w ,I,C,e ] #리스트 순서가 있음
c= (1,2,3,4,5) #튜플 순서가 있음
시퀀스의 특징
1. 원소간의 순서가 존래
-> 인덱실 / 슬라이싱이 가능하다.
print(a[1]) #$ n
print(b[2:4]) # 2이상 4이상
슬라이싱- > 어디의 자료형을 가져오게 되면 원래 자료형 그래도 오게 된다.
문자열 -> 문자열 , 리스트-> 리스트
익덱싱/ 슬라이싱 할때 음수를 넣거나 , 자리를비우는것도 가능
a = "once"
b = ["t" , "w" , "i", "c", "e"]
print(a[-1]) # e 뒤에서 1번째 원소
print(b[ :3]) # ['t' ,'w' ,'i'] 처음 ~3번째 슬라이싱
음수의 경우 뒤에서 부터 셈 맨 뒷원소가 -1
슬라이싱 할때 처음부터 한다는 의미 0이 생략 되었다는 것
슬라이싱 할때 마지막 까지 다 슬라이싱 할려면 뒤에 껄 생략하면 됨 [ 2 : ]
2.멤버 조회(원소)
in 연사자로 시퀀스 안에 원소가 있는지 확인 가능
a = "once"
b = ["t" , "w" , "i", "c", "e"]
print('o' in a ) # True 문자열 'o'가 문자열 a에 있니 ?
print('b' in b ) #False 문자열 'b'가 리스트 b에 있니 ?
3. 길이 확인
led 연산자로 시퀀스 안에 원소가 몇개 인지 확인 가능
a = "once"
b = ["t" , "w" , "i", "c", "e"]
print(len(a)) #4
print(len(b)) #5
4. 연결 연산
+ 연결자로 같은 시퀀스 두개를 이어 붙일수 있다.
c= ['t' ,'w', 'i' ] + ['c' ,'e'
print(c) # b = ["t" , "w" , "i", "c", "e"]
5. 반복연산
* 연산자로 시퀀스를 반복할수 있다.
d= "shy" *3
print(d) # shyshyshy
my_str = "Impossible"
my_list = ["Apple" , "Banana" , "chamwae" , "Durian"]
var1 = len(my_str)
var2 = "Egg" in my_list
멤버조회에서 var 2와 같이 "Egg" in my_list 와 같은 문장도 가능
#현재 기차에는 3명의 승객이 탑승하고 있습니다.
train = ['Seongjin', 'Chankyung', 'Junyong']
# 서울역에 정차했습니다.
# 승객 'Jonghwan'을 맨 뒷칸에 태우세요.
train.append("Jonghwan")
print('서울역 도착. // ', train)
# 대전역에 정차했습니다.
# 1등석 승객 'Dongbin'이 탑승했습니다. 이 분을 맨 앞에 태우세요.
train.insert(0, 'Dongbin')
print('대전역 도착. // ', train)
# 동대구역에 정차했습니다.
# 승객 'Seongjin'님이 내린다고 합니다. 이 분을 하차시켜주세요.
train.remove("Seongjin")
print('동대구역 도착. // ', train)
# 마지막 역인 부산역에 정차했습니다.
# 원활한 하차를 위해 손님들의 자리를 사전순으로 다시 지정해주세요.
train.sort()
print('부산역 도착. // ', train)
print('오늘도 빠르고 편안한 기차를 이용해주셔서 감사합니다.')
list.append("원소") 맨 마지막에 삽입
list.remove("원소") 리스트중 맨 앞의 것만 삭제
list.insert(위치, "원소") 위치에 원소 삽입
list.sort () 정렬
#dahyun의 가방 안에서 '다이아몬드'를 훔쳐볼까요?
dahyun = ['은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '다이아몬드', '은']
#이 가방에 한번 넣어봅시다!
stealBag1 = dahyun[-2]
#tzuyu는 가방 안 깊숙히 금을 13개 가지고 있네요! 이것들도 한번 훔쳐볼까요?
tzuyu = ['은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은','금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금' ]
#이 가방에 한번 넣어봅시다!
stealBag2 = tzuyu[-13:]
#여러분이 훔쳐온 보석은 무엇인지 print()를 이용해서 한번 확인해보세요!
print('dahyun로부터 훔쳐온 보석은', stealBag1)
print('tzuyu로부터 훔쳐온 보석은', stealBag2)
인덱싱 관련 문제
마이너스인덱싱이 가능
그리고 슬라이싱 에서도 처음숫자를 마이너스로 설정할수 있음
twice = ["모모", "쯔위", "사나", "지효", "미나", "다현", "나연", "정연", "채영"]
blackpink = ["지수", "제니", "리사", "로제"]
# 1. 트와이스와 블랙핑크의 멤버는 각각 몇 명일까요? 한 번 알아봅시다!
twice_member = len(twice)
print(twice_member)
blackpink_member = len(blackpink)
print(blackpink_member)
# 2. 멤버 수가 많아 헷갈리네요! 누가 어디 그룹의 소속인지 알아보고 각각 출력해봅시다.
# 2-1. 모모는 블랙핑크 소속일까요? in을 써서 알아봅시다.
isMomoBlackpink = "모모" in blackpink
print(isMomoBlackpink)
# 2-2. 쯔위는 트와이스 소속일까요?
isTzuyuTwice = "쯔위" in twice
print(isTzuyuTwice)
# 2-3. 지수는 블랙핑크 소속일까요?
isJisooBlackpink = "지수" in blackpink
print(isJisooBlackpink)
len() 함수 사용
in 존재여부
len(리스트)
리스트 연결
a = ['ring']
b = ['ding']
c = ['dong']
d = ['diggi']
# 연결 연산자를 이용해서 ['ring', 'ding', 'dong']를 lyric에 대입해봅시다.
lyric = a+b+c
print(lyric)
# 수능을 하루 앞둔 친구에게 수능 금지곡을 들려줍시다!
# 변수 shinee에 다음 리스트를 담아봅시다.
# ['ring', 'ding', 'dong', 'ring', 'ding', 'dong']
shinee1 = a+b+c+a+b+c
print(shinee1)
# 노래가 좀 짧네요! 뒷부분도 불러봅시다!
#['ring','diggi','ding','diggi','ding','ding','ding']
shinee2 = a+d+b+d+b+b+b
print(shinee1,shinee2)
list.append(d) : 자료 d를 list의 마지막 원소 뒤에 추가
list.insert(i, d) : 인덱스 i에 자료 d를 삽입
list.remove(d) : 인덱스 0부터 조회하여 처음 나오는 자료 d를 제거
list.sort() : 리스트를 오름차순/사전순으로 정렬
prime_num = [2, 3, 5, 7, 9, 11]
prime_num[0] # 2
prime_num[1:4] # [3, 5, 7]