Python < Replit 정리 29 - 42 >

do yeon kim·2022년 6월 22일
0

Python

29. Lists

리스트

자료구조 중 하나인 리스트
리스트는 순차적으로 연관있는 데이터를 저장한다.
순차적이므로 인덱스로 저장 위치에 접근할 수 있다.
인덱스는 0부터 시작한다.

리스트는 대괄호[]를 이용해서 만들 수 있다.
리스트 안에 저장되어 있는 값들을 요소(element)라고 한다.

음식 = ["치킨", "피자", "삼겹살"]
음식이라는 리스트 안에 "치킨, 피자, 삼겹살 이라는 요소가 들어 있는 것이다.

def add_first_and_last_elements(my_list):
    
    if len(my_list) != 0:
        first =my_list[0]  
        last = my_list[-1]
        
        if len(my_list) > 1:
            return first + last
        
        elif len(my_list ) == 1:
            return first
    else:
        return 0

리스트의 길이가 0이면 인덱스를 이용한 접근이 불가능 하다. 그러므로
바깥의 if-else구문을 이용해서 먼저 0인지 아닌지를 판단해 주어야 한다.



30. List (1) - Store Multiple Values in one Variable using list

python의 list는 여러개의 데이터를 한곳에 저장 할 수 있는 자료구조이다.
[ ]를 이용해서 리스트를 사용한다.



31. List (2) - Nest one List within Another List

리스트안에 또다른 리스트르 중첩해서 사용할 수 있다.

nest_list = [[1,2,3],[4,5,6]]



32. List (3) - Access List Data with Indexes


def list_index():
    # 아래의 코드는 변경하지 마세요.
    my_list = [50, 60, 70]
  
    # 아래에 코드를 작성해주세요.
    first_value = my_list[1]

    # 아래의 코드는 변경하지 마세요.
    return first_value

인덱스를 인용해서 원하느 요소를 출력한다.



33. List (4) - Modify List Data With Indexes

def modify_list():
    my_list = [18,64,99];
    my_list[2] = 72
    return my_list;

인덱스를 이용해서 리스트에 접근 후 데이터 수정하기



34. List (5) - Access Multi-Dimensional Lists With Indexes

def access_list():
    my_list = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];
    my_data = my_list[2][1] # 요소 8에 접근한다.
    return my_data;

다차원리스트에 접근하는 방법은 기본리스트가 접근하는 방법과 비슷하다.
인덱스 [ ]를 이용해서 접근한다.
단, 2차원리스트이므로 [][] 두개의 []괄호를 이용해서 접근한다.



35. List (6) - Manipulate Lists With append( )

def list_append():
    my_list = [["John", 23], ["cat", 2]]
    my_list.append(["dog",3] )
    return my_list;

append()를 이용해서 마지막에 요소 추가하기



36. List (7) - Manipulate Lists With pop( )

def list_pop():
    my_list = [["John", 23], ["cat", 2]];
    my_list.pop()
    return my_list;

pop()을 이용한 마지막 요소 삭제하기



37. Adding And Changing Elements To Lists

+

append이외의 추가 방법 + 를 이용해서 리스트를 합친다.
+를 이용한 리스트 확장시 반드시 다른 변수에 저장을 해주어야 한다.

color_list = color_list + ["Light Blue", "Pink"]'
insert

insert() 는 저장하고자 하는 데이터 이외에도 인덱스르 같이 주어야 한다.
그래야지 인덱스의 위치에 데이터가 추가 된다.

food_list.insert(1, "치킨")
빈리스트

lst = [ ]를 한 경우 빈리스트를 만든다.

my_list = [ ]
my_list.append(1)
my_list = my_list + [2, 3]

my_list = [1,2,3]

def merge_and_swap(list1, list2):
    if len(list1) == 0 and len(list2) ==0:
      return []
    elif len(list1) != 0 and len(list2) == 0:
      list1[0] = list1[-1]
      list1[-1] = list1[0]
    
    elif len(list1) == 0 and len(list2) != 0:
      list2[0] = list2[-1]
      list2[-1] = list2[0]
    
    else:
      list1 = list1 + list2
      tempfirst = list1[0]
      templast = list1[len(list1)-1]

      list1[0] = templast
      list1[-1] = tempfirst
      
    return list1


38. List Slicing

Slicing
리스트의 일부분을 복사하는 방법을 의미한다.

인덱스 번호를 이용해서 필요한 부분만 뽑아서 새로운 데이터를 만든다.

Slicing step
일부분을 복사해 오는데 인덱스의 간격을 설정할 수 있다.

step를 이용해서 큰수부터 작은 수로 반대로 해서 뽑아 올수도 있다.

슬라이싱은 기존의 리스트르 수정하는 것이 아니라 새로운 리스트르 만드는 것이다.

my_list = [1, 2, 3, 4, 5, 6, 7, 8]

arr1 = my_list[0:int(len(my_list)/2)]
arr2 = my_list[int(len(my_list)/2): ]
arr3 = my_list[1:5]

print(arr1)
print(arr2)
print(arr3)


39. Deleting Elements From List

리스트 요소 삭제

fruit_list =["apple", "banana", "pineapple"]

del은 인덱스 번호를 이용해서 삭제한다.
del fruit_list[0]

remove 데이터 값을 이용해서 삭제한다.
remove("banana")

def remove_odd_numbers(numbers):
  result =[]
  for number in numbers:
    if number % 2 == 0:
      result.append(number)
    else:
      pass
  return result

del이나 remove를 해서 리스트의 요소가 변경되면, 리스트의 길이 또한 변한다는 점을 주의하자.



40. Tuples

튜플
튜플은 리스트와 같이 하나의 자료구조이다.
리스트와 많은 점이 비슷하지만, 튜플은 한번 선언 하면, 추가, 수정, 삭제가 불가능 하다는 특징이 있다.

대신, 선언 후는 리스트 처럼 인덱스를 이용한 접근은 가능하며, 슬라이싱도 가능하다.

튜플은 일반적으로 2개에서 5개 사이의 요소들을 저장할때 사용되며, 특정 데이터를 ad hoc(즉석적으로) 하게 표현하고 싶을때 사용됩니다.

coords = [ (4,4),  (5,2),  (-2, 2),  (-3, -4) ]

이렇게 튜플은 주로 리스트와 같이 쓰인다. 리스트의 요소로 튜플이 들어가 있는 것이다.

def convert_list_to_list_of_tuples(my_list):
# 함수를 완성해 주세요.
  result = []
  first = my_list[:2]
  second = my_list[2:4]
  third = my_list[4:]
  result.append(tuple(first))
  result.append(tuple(second))
  result.append(tuple(third))

  return result


41. Set

set
set은 리스트와 달리 순서가 없다. 그리고 중복도 허용되지 않는다.
순서가 없기 때문에 인덱스르 이용한 슬라이싱이나, 값에 접근하는 것은 불가능하다.

set을 생성하는 방법은 {}를 이용해서 생성한다.
그리고 set()함수를 이용해서 리스트를 set로 바꿀 수도 있다.
set(my_list) 리스트의 중복을 제거 하기 위해서 사용하는 경우가 있다.

데이터 추가, 삭제
set에 새로운 데이터를 추가하는 것은 add()
set에 데이터 삭제하는 것은 del()

Look Up
in
in 은 set을 활용하는 방법 중 하나로 요소가 set안에 있는지 없느지를 참/거짓으로 알려준다.

교집합과 합집합
교집합은 & 키워드 혹은 intersection() 함수
합집합은 | 키워드 혹은 union() 함수

def get_unique_numbers_count(numbers):
  numbers = set(numbers)
  return len(numbers)


42. Dictionary

dictionary

my_dic = { "key1" : "value1", "key2" : "value2"}

키와 데이터를 함께 저장한다.

딕셔너리는 { }를 이용해서 만든다.

dictionary 데이터 읽어오기
my_dic["key1"]
키 값을 이용해서 데이터를 가지고 온다.
키 값은 중복될 수 없고, 문자형이외에 숫자도 가능하다.
동일한 키값이 있다면, 나중에 들어온 키가 값을 치환한다.

dictionary 데이터 추가하기

dictionary_name[new_key] = new_value

키를 이용해서 키에 해당하는 곳에 데이터를 집어 넣는다.

dictionary 데이터 수정하기
리스트가 인덱스를 이용해서 접근해 데이터를 수정했다면,
딕셔너리는 키값을 이용해서 접근해 데이터를 수정한다.

dictionary 데이터 삭제하기
del 키워드와 키값을 이용해서 데이터를 삭제한다.



google classroom

정리 1
jimin = {"가명": "Jimin","본명":"박지민","생년월일":"1995-10-13","출생지":"부산","포지션":"리드보컬","학력":"대학원"}

for item in jimin.items():
    print(item)


('가명', 'Jimin')
('본명', '박지민')
('생년월일', '1995-10-13')
('출생지', '부산')
('포지션', '리드보컬')
('학력', '대학원')
정리 2

Set 과 Dictionary 의 차이
Set과 Dictionary의 공통점은 { } 로 이루어 져 있다는 것이다.

set은 순서가 없으며, 중복이 존재하지 않는다. 리스트에서 리스트 요소의 중복을 제거 하기 위해서 set으로 변환해서 사용하는 경우가 있다.

Dictionary 키와 벨류를 함께 저장하는 자료구조이다. 키값은 중복이 허용되지 않으며, 만약 중복된 키 값이 있다면, 나중에 들어온 키값이 이전 키값을 치환한다.



List 와 Tuple 의 차이
list와 tuple은 많은 점이 비슷하다. 둘다 인덱스번호를 이용해서 슬라이싱, 인덱스번호를 이용해서 데이터에 접근이 가능하다.

다른 점은 tuple이 한번 선언 하면 데이터의 추가, 삭제, 수정이 불가능하다는 점이다.

리스트는 [ ] 대괄호를 이용해서 선언한다.
리스트는 append로 추가, 인덱스번호로 수정, del과 remove로 삭제 등 데이터에 대한 추가작업이 가능하다.

튜플은 ( ) 소괄호를 이용해서 선언한다.
추가, 삭제, 수정이 불가능 하다.

0개의 댓글