python-list의 특징

pitbull terrier·2020년 6월 3일
0

Python

목록 보기
13/29

list의 특징중 하나는 수정이 가능하다는 점입니다.
즉, list에 element를 추가 할 수 도 있고 또한 기존의 element 값을 변경할 수도 있습니다.

1. Append

리스트에 새로운 element를 추가 하기 위해서는 일반적으로 append 라는 함수를 사용하면 됩니다.
영어 단어 "append" 는 "덧붙이다" 라는 뜻을 가지고 있습니다. 그 뜻대로 element를 리스트에 "덧붙인다"는 기능을 합니다.

color_list = ["Red", "Blue", "Green", "Black"]
print(color_list) ## ==> ['Red', 'Blue', 'Green', 'Black']
color_list.append("Yellow")
print(color_list) ## ==> ['Red', 'Blue', 'Green', 'Black', 'Yellow']

위에서 볼 수 있듯이 list에서 append 를 사용하는 방법은 다음과 같습니다.

<list name> <dot> <append> (element)

위의 코드의 경우 list를 저장하고 있는 변수의 이름은 color_list 임으로 "Yellow"라는 새로운 값을 추가 하기 위해서는 다음과 같은 문법을 사용하게 됩니다.

color_list.append("Yellow")

  1. 먼저 list 이름이 위치

  2. 그 다음에 dot (점) 이 위치하고

  3. dot 다음으로 append 가 옵니다.

  4. 그 후 괄호가 따라 붙습니다.

  5. 마지막으로 괄호 안에 추가하고자 하는 값을 넣으면 됩니다.

    여기서 중요한점은, "추가한다" 라는 뜻의 "add"를 사용하지 않고 "덧붙인다" 라는 뜻의 append를 사용했다는 점입니다.
    전 시간에 list는 순차적으로 element를 저장한다는 것을 배웠습니다. 즉, element가 저장되어 있는 순서가 있다는 점입니다.
    그럼으로, 새로운 element를 list에 추가 할때는 마지막 element의 다음 칸에 "덧붙이게" 되는 것입니다.

2. +

추가하고자 하는 element가 한개 이상일때는 append 대신에 + 를 사용할 수 있습니다.

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

list에서 + 를 사용하여 element들을 추가 할때는 대괄호 ([]) 를 사용하여 리스트의 형태로 만든후 추가해야 합니다.
즉, + 는 list와 list를 합하여 줍니다.
여기서 조심해야 할 점은 + 를 사용하여 list 들을 합한 값을 다시 저장하고자 하는 변수에 지정해줘야 한다는 점입니다.
즉, 다음처럼

list1 = list1 + list2

의 형태가 되어야 한다는 점 입니다. 이 이유는, + 를 사용하면 기존의 list가 수정되지 않고 기존의 list와 다른 새로운 list가 생성되기 때문입니다.
그럼으로 새로 생성된 list를 변수에 다시 지정해 주지 않으면 기존 list들은 수정이 되지 않은 상태로 남아있게 됩니다.

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7]

list1 + list2

print(list1)
[1, 2, 3, 4]

list1 = list1 + list2

print(list1)
[1, 2, 3, 4, 5, 6, 7]

3. insert

Append 와 + 이 외에 insert를 사용해서 list에 새로운 element를 추가 할 수 있습니다.
다만 insert는 append 와 + 와는 다르게 원하는 위치에 element를 삽입 할 수 있습니다.

다음과 같은 우리나라의 도시들을 저장하고 있는 list를 예를 들어 보겠습니다.

cities = [
"서울특별시",
"부산광역시",
"인천광역시",
"대구광역시",
"대전광역시",
]

cities 에 "제주특별자치도 제주시" 를 "서울특별시" 다음에 삽입 하고자 하면 다음과 같이 할 수 있습니다.

cities.insert(1, "제주특별자치도 제주시")

insert를 사용하는 문법은 앞서 본 append와 비슷하며 차이점은 insert는 추가하고 자 하는 element 외에 element를 삽입 하고자 하는 위치(index)도 지정해줘야 합니다.

앞서 언급 했듯이 insert는 새로운 element를 원하는 위치에 삽입할때 사용됩니다.

Empty List

처음에는 비어있는 list를 생성한다음에 나중에 element들을 추가 할 수도 있습니다.
Empty list, 즉 비어있는 list는 아무런 element 없는 비어있는 대괄호( [ ] )로 생성할 수 있습니다.

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

Updating Elements

새로운 element를 추가하는 거 외에도 기존의 element의 값을 수정 할 수 있습니다.
기존 element의 값을 수정하기 위해서는 수정하고자 하는 element의 index 값을 통해 list에서 element를 선택한 후 새로운 값을 지정해 주면 됩니다.

cities = [
"서울특별시",
"부산광역시",
"인천광역시",
"대구광역시",
"대전광역시",
]
cities[2] = "경기도 성남시"

  1. 먼저 list 이름이 위치하고
  2. 그 다음 대괄호 가 위치하며
  3. 대괄호 안에 바꾸고자 하는 element의 index를 지정한 후
  4. Assignment 을 의미하는 = 부호가 위치하고
  5. = 부호 다음에 새로운 값을 지정해 주면 됩니다.

    위의 코드를 실행하면 cities 의 3번째 (index는 0부터 시작함으로) element인 인천광역시 가 경기도 성남시로 바뀌게 됩니다.

Assignment

주어진 2개의 리스트를 하나의 리스트로 합친 후 리스트의 첫 element와 마지막 element를 서로 바꿔준 후 리스트 전체를 출력해주세요.

예를 들어, 다음과 같은 2개의 리스트가 주어졌다면

list1 = [1, 2, 3, 4, 5]
list2 = [6, 7]

출력되야 하는 결과물은 다음과 같습니다,

[7, 2, 3, 4, 5, 6, 1]

두개 다 빈 리스트가 들어온다면 빈리스트를 반환해야 합니다.

  • 기본적으로 def를 만든뒤 list1,list2를 추가시켜주었다.
  • 주어진 2개의 리스트를 하나의 리스트로 합친 후 라고 했으니
    list3 = list1+list2를 해주었다.
    -if len(list3) == 0: #만약 list3의 길이가 0과 같다면
    return list3 # list3을 return해라.(빈 리스트를 반환하기 위해)
  • else: #그게 아니면
    list3[0],list3[-1] = list3[-1],list3[0]
    return list3
  • 파이썬에서 위치 바꾸는 방법은 여러가지가 있는데 그 중에 제일 간단하고 쉬운게 a,b = b,a이렇게 해주는 것이다.
    그래서 else 조건문 다음에 list3[0],list3[-1] = list3[-1],list3[0]
    이렇게 해주었더니
    이렇게 잘된다 .
profile
yoonbitnara.github.io

0개의 댓글