본문 바로가기
Programming/Python

리스트(LIST 02)

by 공부합시다홍아 2023. 10. 24.

리스트(LIST)_01

 

리스트(LIST)_01

문자열 다루기 문자열 다루기 제어문 - 반복문(for), 탈출문, 무한반복문 제어문 - 반복문(for), 탈출문, 무한반복문 제어문 - 반복문(while) 제어문 - 반복문(while) 제어문 - 반복문(while) 제어문 - 반복

hong-study.tistory.com


리스트를 컨트롤하는 방법

  • 리스트는 위와 같은 함수들을 이용하여 생성/삭제/변경 등이 가능하다.

탐색 (Index)
  • position 위치 이후에서 Value 값이 있는 인덱스를 반환한다.
  • 단, 아래와 같이 리스트내에 검색하고자하는 값이 존재하지 않으면 에러가 발생한다.
points = [90, 17, 87, 100, 55, 100, 99, 100, 22]

points.index(2) # 찾는 값이 없으면 에러 발생


points = [90, 17, 87, 150, 55, 100, 99, 100, 22]

# point index
print( points.index(55) )
print( points.index(100, 4) )

# count
print( points.count(100))

# in 문장
print( 101 in points )
print( 100 in points )


정렬(sort)
  • 리스트의 항목들을 정렬, reverse 속성을 True로 하면 내림차순으로 정렬한다.
  • 기본적으로 오름차순 정렬
points.sort()
print(points)


# soty 내림차순 정렬
points.sort(reverse = True)
print(points)
points.reverse()
print(points)


추가(Append, insert, extend)
  • append는 list에 Value를 추가한다.
  • Insert는 list의 index 위치에 Value를 삽입한다.
  • extend는 list에 newList를 추가한다
  • + 는 두 개의 list를 연결한다. 
nums = [1,2,3,4]
nums.append(100)

print(nums)
nums.insert(3, 200)
print(nums)


삭제 ( remove, pop, del, clear )
  • remove(value) : 리스트에서 해당 값만 삭제한다.
  • pop() : 리스트에서 가장 마지막 항목을 반환하고 삭제한다.
  • del.리스트 : 리스트에서 인덱스를 이용해 항목을 삭제한다.
  • clear() : 리스트내 모든 항목을 삭제한다.
number1 = [1,2,3,200,4,100]
number1.remove(100) # 순서대로 확인하다 첫 번째 발견된 값을 삭제

print(number1)

del(number1[0])
print(number1)


nums = [1,2,3,4]
print(nums)

nums.clear()
print(nums)


예제 - 특정 문자열을 입력받으면, 반복을 종료하고 모든 리스트를 출력하시오.
print("#먹고 싶은 음식을 입력하세요 : ")
print("#그만입력하려면 '그만'이라고 쓰세요.\n")

b = []

while(True):
    
    a = input(" > ")
    
    if a == "그만":
        break
    else:
        b.append(a)
        
        
print("\n내가 먹고싶은 음식 :  ", b)


예제 - 리스트(list)를 이용한 간략한 전화번호부 관리 프로그램

nameList = [] #이름 저장
phoneList = [] # 번호 저장

while(True):
    
    print("-----------연락처 관리(메뉴)------------")
    print("1. 연락처 등록")
    print("2. 연락처 검색")
    print("3. 연락처 삭제")
    print("4. 모든연락처출력")
    print("5. 종료")
    print("-----------------------------------------\n")
    
    
    menu = input("사용할 번호를 입력하세요 : \n")

    
    if menu == "1":
        name = input("\n이름을 입력하세요 : \n")
        phone = input("\n전화번호를 입력하세요 : \n")
        
        print(f"\n{name}님의 전화번호 {phone}이 저장되었습니다.\n")
        
        nameList.append(name)
        phoneList.append(phone)
            
            
    elif menu == "2":
        
        i = input("\n검색할 이름을 입력하세요 : \n")
        
        if i in nameList:
            print(f"\n{i} 님의 연락처 : {phoneList[nameList.index(i)]}\n")
        else:
            print("\n해당 연락처가 존재하지 않습니다.\n")
            
            
    elif menu == "3":
        
        j = input("\n삭제할 이름을 입력하세요 : \n")
        
        if j in nameList:
            phoneList.remove(phoneList[nameList.index(j)])
            nameList.remove(j)
            print("\n해당 연락처를 삭제하였습니다.\n")
        else:
            print("\n해당 연락처가 존재하지 않습니다.\n")
            
            
    elif menu == "4":
        
        for q,w in zip(nameList, phoneList):
            print(f"성함 : {q}, 연락처 : {w}")
            print()
        
        
    elif menu == "5":  
        
        print("\n프로그램을 종료합니다.\n")
        break
    
    else:
        print("\n번호를 잘못입력하였습니다.\n")
설명

1 입력받을 이름을 저장하는 리스트를 선언
2 입력받을 연락처를 저장하는 리스트를 선언

4 무한반복 while 선언

6 6-12까지는 연락처의 메뉴를 출력하고, 기능이 하나씩 동작할 때마다 표출되게 선언한다.
7
8
9
10
11
12

14 몇 번을 수행할지 입력받을 구문을 선언

16 1번을 입력했다면
17 1번은 연락처 등록이기때문에 이름과 연락처를 입력받을 input문을 각 기 따로 작성한다.
18

20 입력을 마쳤다면 해당 구문처럼 출력되도록 print문을 작성한다.

22 아까 선언한 nameList에 append를 이용하여 입력한 이름을 저장한다. 
23 위와 동일하게 입력한 연락처를 phoneList에 저장한다.

25 2번을 입력했다면

27 검색할 이름을 입력할 구문 작성

29 입력한 이름이 nameList 리스트내에 존재한다면
30 입력한 이름 i와 nameList내 i의 인덱스를 phoneList의 인덱스로 설정하여 동일 입력값이 출력되게 한다.
31
32 입력한 값이 nameList에 없다면 해당 구문을 출력한다.

34 3번을 눌렀다면

36 삭제할 이름을 입력할 구문 입력

28 입력한 값이 nameList에 없다면
29 remove 함수를 이용하여 삭제하는데 아까 추가할 때 사용한 index 검색 방법을 이용하여 작성한다.
30 nameList 내에도 입력한 값을 삭제한다.
31 삭제완료시 해당 구문을 출력한다.
32
33 입력한 값이 없을 시 해당 구문을 출력한다.

35 4번을 눌렀다면

37 zip을 이용하여 nameList와 PhoneList를 두 리스트를 지정한다.
38 두 리스트내의 저장한 모든 값을 출력한다. 
39 

41 5번을 눌렀다면

43 프로그램을 종료한다는 구문을 입력한다
44 무한반복 while을 종료한다.

46 
47 1-5번이 아닌 다른 값을 입력했을 시 해당 구문을 출력한다.
728x90

'Programming > Python' 카테고리의 다른 글

함수(선언/전역변수/지역변수)  (0) 2023.10.24
Tuple(튜플)과 Dictionary(딕셔너리)  (2) 2023.10.24
리스트(LIST)_01  (0) 2023.10.23
문자열 다루기  (2) 2023.10.20
제어문 - 반복문(for), 탈출문, 무한반복문  (0) 2023.10.19