Chapter 07. 리스트

이성욱·2024년 5월 13일

리스트

리스트(list)는 여러 개의 데이터가 저장되어 있는 장소이다.

리스트 생성 방법

리스트이름 = [1,2,3, ...]
aa = [10, 20, 30, 40]

리스트를 사용하지 않는다면 각각의 변수를 a, b, c, d와 같이 선언
하지만 리스트를 사용하면 첨자를 넣어 aa[0], aa[1], aa[2], aa[3]과 같이 선언
이때 항목이 4개인 리스트를 생성한다면 첨자는 1~4가 아닌 0~3을 사용함.

리스트 생성과 초기화

Aa = []
bb = [10,20,30]
cc = ["파이썬", "공부는", "재미있다"]
dd = [10,20,"파이썬"]

len() 함수

len(문자열): 문자열의 길이를 얻어낸다.
len(리스트): 리스트가 가지고 있는 자료 개수를 얻어낸다.

복잡한 리스트

  • 혼합 자료형 리스트
    list1 = [12,"dog",180.14]
  • 내장 리스트 - 리스트 내부에 리스트를 가지고 있는 리스트
list2 = [["Seoul",10],["Paris",12],["London",50]]
list3 = ["aaa",["bbb",["ccc",["ddd","eee",45]]]]

리스트의 연산

시퀀스 자료형

순서를 가진 요소들의 집합

  • 문자열
  • 바이트 시퀀스
  • 바이트 배열
  • 리스트
  • 튜플
  • range 객체

문자열과 리스트의 비교

text = "Will is power."
print(text[0],text[3],text[-1])

first = ["apple","banana","tomato","peach","pear"]
print(first[0], first[3], first[-1])

시퀀스에서 가능한 연산과 함수

리스트의 슬라이싱

슬라이싱(slicing)은 리스트 안에서 범위를 지정하여서 원하는 요소들을 선택하는 연산이다.
문자열의 슬라이싱과 동일

score = [90,88,75,42,100]

b = score[1:4]
print(score)
print(b)

리스트의 기초 연산

+ 연산자와 * 연산자 사용
문자열의 +* 연산자와 동일하게 동작
+ 연산자: 두 개의 리스트 연결한 새로운 리스트 생성

* 연산자: 리스트를 * 뒤에 나옿는 숫자만큼 반복한 리스트 생성

요소 추가하기

append()를 사용하여서 리스트의 끝에 새로운 항목을 추가할 수 있다.

요소 삭제하기

pop(): 특정한 위치(인덱스)에 있는 항목을 삭제한다.


remove(): 리스트의 내의 값을 삭제한다.

리스트 일치 검사

우리는 비교 연산자 ==, !=, >, < 를 사용하여 2개의 리스트를 비교할 수 있다.

리스트 최소값 최대값 찾기

리스트 정렬하기

리스트 객체의 sort() 메소드를 사용하는 방법

sorted() 내장 함수를 사용하는 방법

리스트 함수

튜플

튜플의 정의

튜플(tuple)은 변경될 수 없는 리스트


튜플의 특징

튜플은 값의 변경이 불가능 하다
+ 연산자를 이용하여 새로 생성은 가능하다

세트

세트의 정의

세트(set)는 우리가 수학에서 배웠던 집합이다.
세트는 중복되지 않은 항목들이 모인 것
세트의 항목 간에는 순서가 없다.

세트에서의 in 연산자

세트(set)의 구성요소를 찾기: in 연산자

for 문을 이용한 순회 가능

세트에 요소 추가 삭제

세트의 연산

딕셔너리

딕셔너리는 키(key)와 값(value)의 쌍을 저장할 수 있는 객체

딕셔너리의 생성

요소(항목) 추가 & 삭제

요소 순회하기



list

a = [10,20,30,40]

print(a)

score = [32,56,64,72,12,37,98,77,59,69]
print(score[3])
score[5] = 47 # 변경
print(score)

for x in score:
    print(x, end=" ")
print()

for x in range(len(score)):
    print(score[x], end=" ")
print()


#################################


a = []
print(a)
b = [10,1.234,2.345,"안녕",True,"Hi"] # 정수 실수 문자형 논리형 모두 리스트 안에 가능
print(b)


list2 = [["Seoul",10],["Paris",12],["London",50]]
list3 = ["aaa",["bbb",["ccc",["ddd","eee",45]]]]

print(list2)
print(list3)

print(list2[2][0], list2[2][1])


##################################


a = [["Seoul", 10],
     ["Paris", 12],
     ["London", 50],
     ["NewYork", 33]]

for x in a:
    print(x)


for x in a:
    for y in x:
        print(y, end=" ")
    print()

for x in range(len(a)):
    for y in range(len(a[x])):
       print(a[x][y], end = " ")
    print()



###################################


a = [10,20,30,40]
b = "Hello"

text = "Will is power."
print(text[0],text[3],text[-1])

first = ["apple","banana","tomato","peach","pear"]
print(first[0], first[3], first[-1])

a = [11,22]
b = "Hi"

print(11 in a)
print("i" in b)


score = [90,88,75,42,100]

b = score[1:4]
print(score)
print(b)

score = [90,88,75,42,100]

print(score)
score.append(99)
print(score)


#####################################

score = []
print(score)

score.append(99)
print(score)
score.append(86)
print(score)

#####################################

a=[11,22,33,44,55]
if 22 in a:
    print("있습니다")

idx = a.index(22)
print(idx)

if 99 in a:
    idx = a.index(99)
    print(idx)


###################################


a = [11,22,33,44,55]
a.pop(1)

heroes  = [ "스파이더맨", "슈퍼맨", "헐크", "아이언맨", "배트맨" ]
value=heroes.pop(1)
print(value, heroes)


#######################################


a = [10,20,30,5,9,99,88]

a.sort()
print(a)
a.sort(reverse=True)
print(a)
a.insert(3,20)
print(a)

##########################################


a = {10,20,30,40}
b = {20,40,90}
print(a)
print(b)
# a[1] # 불가능 오류

a.add(44)
a.remove(10)

#########################################


a = {"kim":90, "Lee":88, "Park":77}

print(a["Lee"])

7ex1

meal = [["식단표","조식","중식","석식"],
        ["1일차","빵과 우유","돈까스","소고기 무국"],
        ["2일차","시리얼","콩나물국","참치김치마요"],
        ["3일차","호박죽","카레","김치찌개"]]

for x in meal:
    for y in x:
        print(y, end=" ")
    print()
    

for x in range(len(meal)):
    for y in range(len(meal[x])):
        print(meal[x][y], end = " ")
    print()

7ex2

num = int(input("학생 명 수. "))

score = []

hap = 0

for i in range(num):
    a = int(input(f"{i+1}번째 학생의 성적. "))
    score.append(a)
    hap += score[i]

print("평균점수는 %.1f점 입니다."%(hap/num))

7ex3

sentence = []
count = 0


while True:
    a = input("Please enter a sentence: ")
    if a == "":
        break
    sentence.append(a)
    count += 1

print(f"총 {count} 문장 입력")
print(sentence)	

7ex4

sentence = []
count = 0


while True:
    a = input("Please enter a sentence: ")
    if a == "":
        break
    if a not in sentence:
        count += 1
        sentence.append(a)
    else:
        count -= 1
        sentence.remove(a)
    for x in sentence:
        print(f"[{x}]", end = " ")
    print()
    
print(f"총 {count} 문장 입력")
print(sentence)

0개의 댓글