Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

배우고 느낀 것들

[언어분석을위한프로그래밍] 3주차 본문

카테고리 없음

[언어분석을위한프로그래밍] 3주차

낑깡H 2022. 9. 26. 15:24

<언분프 3주차>

리스트: 변경 가능 

1번 자리에 d 추가 
fruits = ['a', 'b', 'c']
fruits.insert(1,'d')
print(fruits)

#특정 리스트에 저장된 모든 원소에 대해 조건에 맞는 원소만 선택적으로 추가 
#(1)의 원소를 2로 읽어와서 조건식3에서 그 값을 테스트하고, 참이면 4를 리스트에 입력 

#i4 for i2 in (리스트명1) if (조건식3)

mylist = [3, 5, 4, 9, 1, 8, 2, 1]
newlist = [i for i in mylist if (i%2)==0]
print(newlist)

/
mylist = [3, 5, 4, 9, 1, 8, 2, 1]
newlist = [i for i in mylist if (i%2)==0]
print(newlist)

num_list = [[n * m for n in range(3)] for m in range(2,4)]  #리스트 안에 리스트 형태 , n*m 형태로 출력 
print(numlist)  #m은 2,3 -> n = 0,1,2 -> 2 * 0,1,2 / 3 * 0,1,2
/

nums = [1, 2, 5, 7, 9]
nums.pop()
nums.pop()
print(nums)
#입력값을 넣으면 인덱스로 삭제 

#in, not in 으로 존재 여부 확인 

#*, for 로 반복 출력 

/
nums = [1, 3, 4, 6, 5, 5, 7, 8]

print(nums.count(5))   #특정 값5의 개수 세기 
print(nums.index(3))    #x값이 "처음" 나오는 인덱스 번호 반환 
/
#2차원 리스트 
fruitdb = [['a',1], ['b',2], ['c',3]  
print(fruitdb[1],[1])
/
#2차원 리스트에 저장된 모든 리스트들의 1번 인덱스에 저장된 내용들만 모아서 새로운 인덱스 생성  p.90
index =[ary] *****


튜플: 변경 불가  
괄호 생략, 혹은 괄호로 묶인 배열 

튜플의 중첩 
animals = ("A", B,C)
fruits = (D, E, F) 
things = animals, fruits

or print(fruits,animals) 

인덱싱, 슬라이싱은 가능, 내용 변경은 불가능 
fruits[1] = 'F' -> 에러 발생 

리스트를 포함하는 튜플 
fruits = ([a,b], [c,d])
print(fruits[1])

newfruits = [e,f]
fruits[1] = newfruits -> 에러 BUT
fruits[1][0] = 'e' -> 리스트의 값 수정이기 때문에 변경 가능 

튜플을 포함하는 리스트 

fruits = [a,b],[c,d]
fruits[0]=[a,b]-> 가능 

슬라이싱과 병합 가능 
: 복수개의 변수를 한 개의 튜플로 묶거나(packing) 풀(unpacking) 수 있음


x = 12.23
y = 23.34
packing = (x,y) 
type(packing) 
print('packing:',packing)
(c1,c2)=packing
print('c1:',c1)
print('c2:',c2) 

2차원으로 튜플 구성 
: 사진 참고 




딕셔너리 { }
한 사전에 유일한 키들을 포함해야 함 
키로 색인: 문자열,숫자, 튜플 (변경 불가능한 값) 


student = {}  # or dict()
student['지훈'] = 1234  #or student[지훈] = 1234 
student[수민] = 3456 
student = {"지훈":1234, "수민":3456}

print(student.get('길동')) : 키가 있으면 해당 키값을 반환, 없으면 none 
print(student.keys()): 모든 키 반환
print(students.values()): 모든 값을 반환 
print(students.items()): 모든 키,값을 반환 

인덱싱, 슬라이싱 불가능

/
값 제거, 불러오기 
 fruitdb = {'A':1020, 'O':880, 'G':3160}
del fruitdb['A']
print(fruitdb)
#880 출력 
print(fruitdb['O'])

del, print는 value가 아닌 index를 기준으로 사용해야 함 
/

사전 병합 : update() 메소드 이용 
newstd = {C,3456, D:4567}
student.update(newstd)
print(student)
/

다른 배열로 사전 만들기 
dict()를 이용하면 키:값 쌍으로 된 배열을 사전으로 만들 수 있음 (리스트, 튜플 무관) 

집합Set 

사전과 마찬가지로 {}를 이용, 키만 있고 값이 없음 

dict = {} # or dict = set()

set를 쓰면 리스트의 중복된 값 제거 가능 

add, update로 추가 
remove,pop으로 삭제 
pop하게 되면 순서가 없으므로 임의로 하나 삭제됨 

in, not in 연산자로 멤버 여부 확인 가능 
print('A' in fruits) 

집합의 연산 p.109 
| : 합집합 
&: 교집합 
- : 차집합 
^: 배타적 차집합 

관계 기호: 
<= : 왼쪽의 모든원소가 오른쪽에 있는지 조사 

p.110 예제 

Comments