본문으로 이동

리스트: 두 판 사이의 차이

Coffee Wiki
Hyunwoo guem (토론 | 기여)
편집 요약 없음
리스트 예시를 노트북 스타일 입력/출력 쌍으로 재구성하고 슬라이싱·remove·pop 결과를 분리해 명확히 제시
 
(사용자 2명의 중간 판 4개는 보이지 않습니다)
1번째 줄: 1번째 줄:
리스트(list)는 여러 값(원소)을 담을 수 있는 객체(object)를 뜻한다. 리스트를 나타낼 때는 대괄호([,])를 사용한다.
'''리스트'''(list)는 여러 값(원소)을 담을 수 있는 [[객체]](object)를 뜻한다. 리스트는 대괄호 <code>[</code>, <code>]</code>로 나타낸다. [[메서드]](method)특정 객체에 속한 [[함수]](function)로, 리스트에 저장된 데이터를 조작하거나 정보를 얻는 데 사용된다. 리스트의 각 원소는 [[인덱스]](index)로 가리키며, 인덱스는 0부터 시작한다.
메서드는 특정 객체 속한 함수를 의미하는 말인데 여기서의 객체는 리스트라 할 수 있다. 리스트에 저장된 데이터를 조작하거나 정보를  
얻는데 사용되는 동작 또는 기능이라고 생각하면 된다. 예를 들어 list.append(x)는 리스트 끝에 x라는 새로운 원소를 추가하는 메서드라고
할 수 있다. 또한 리스트에는 특정 순번에 있는 원소를 부르기 위한 인덱스가 있는데 위치 순서라고 생각하면 된다. 유의할 점은 인덱스는
1이 아닌 0부터 시작한다는 점이다. 밑에는 인덱스에 관련된 메서드이다.


'''리스트'''가 가진 유용한 메서드 <code>remove</code>는 리스트에서 특정 위치에 있는 인덱스를 찾아 삭제하는 것으로 알려져 있지만, 실제로는
== 인덱스와 슬라이싱 ==
위치를 기준으로 원소를 찾는 것이 아니라 특정 값을 기준으로 원소를 찾는 메서드이다. 위치를 기준으로 원소를 삭제하는 메서드는 <code>pop</code>이라는 메서드이다.  
인덱스는 리스트에서 특정 순번의 원소를 가리키는 번호로, 0부터 시작한다. 여러 원소를 한 번에 가리키는 방법을 슬라이싱(slicing)이라 한다.


<syntaxhighlight lang = "python" line>
=== 슬라이싱 ===
리스트 <code>l</code>에 대해 인덱스 <code>i</code>의 원소는 <code>l[i]</code>, 인덱스 <code>i</code>부터 <code>j-1</code>까지의 원소는 <code>l[i:j]</code>, 인덱스 <code>i</code>부터 <code>j-1</code>까지 <code>k</code> 간격의 원소는 <code>l[i:j:k]</code>로 가리킨다.
 
<syntaxhighlight lang="python" line>
l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l[2]
</syntaxhighlight>
<syntaxhighlight lang="text">
'data'
</syntaxhighlight>
 
<syntaxhighlight lang="python" line start="3">
l[1:4]
</syntaxhighlight>
<syntaxhighlight lang="text">
[2.5, 'data', [4, 3]]
</syntaxhighlight>
 
<syntaxhighlight lang="python" line start="4">
l[0:7:2]
</syntaxhighlight>
<syntaxhighlight lang="text">
[1, 'data', 1.0, 2]
</syntaxhighlight>
 
== 메서드 ==
리스트가 가진 유용한 메서드는 다음과 같다.
 
* <code>list.append(x)</code>: 리스트의 끝에 원소 <code>x</code>를 추가한다.
* <code>list.insert(i, x)</code>: 인덱스 <code>i</code>의 위치에 원소 <code>x</code>를 추가한다.
* <code>list.extend(s)</code>: 리스트의 끝에 객체 <code>s</code>의 모든 원소를 추가한다.
* <code>list.remove(x)</code>: 값이 <code>x</code>와 같은 첫 번째 원소를 삭제한다.
* <code>list.count(x)</code>: 원소 <code>x</code>의 개수를 센다.
* <code>list.index(x)</code>: 원소 <code>x</code>가 처음 나타나는 인덱스를 찾는다.
* <code>list.pop(i)</code>: 인덱스 <code>i</code>의 원소를 삭제한다.
 
=== remove와 pop ===
<code>remove</code>는 값을 기준으로, <code>pop</code>은 인덱스를 기준으로 원소를 삭제한다.
 
<syntaxhighlight lang="python" line start="5">
l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l.remove(2.5)
l.remove(2.5)
print(l)
l
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang = "text">
<syntaxhighlight lang="text">
[1, 'data', [4, 3], 1.0, 1.5, 2]
[1, 'data', [4, 3], 1.0, 1.5, 2]
</syntaxhighlight>
</syntaxhighlight>


<code>remove</code>는 2.5의 원소가 삭제된 것을 알 수 있다.
<code>remove(2.5)</code>는 값이 <code>2.5</code>와 같은 원소를 삭제한다.


<syntaxhighlight lang = "python" line>
<syntaxhighlight lang="python" line start="8">
l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l.pop(2)
l.pop(2)
print(l)
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang = "text">
<syntaxhighlight lang="text">
'data'
</syntaxhighlight>
 
<syntaxhighlight lang="python" line start="10">
l
</syntaxhighlight>
<syntaxhighlight lang="text">
[1, 2.5, [4, 3], 1.0, 1.5, 2]
[1, 2.5, [4, 3], 1.0, 1.5, 2]
</syntaxhighlight>
</syntaxhighlight>


<code>pop</code>0부터 시작해서 두번째 위치에 있는 인덱스인 'data'가 삭제된 것을 알 수 있다
<code>pop(2)</code>는 인덱스 2(0부터 세어 세 번째 원소)인 <code>'data'</code>삭제된다.
 
[[분류:프로그래밍과 데이터]]

2026년 6월 15일 (월) 17:19 기준 최신판

리스트(list)는 여러 값(원소)을 담을 수 있는 객체(object)를 뜻한다. 리스트는 대괄호 [, ]로 나타낸다. 메서드(method)는 특정 객체에 속한 함수(function)로, 리스트에 저장된 데이터를 조작하거나 정보를 얻는 데 사용된다. 리스트의 각 원소는 인덱스(index)로 가리키며, 인덱스는 0부터 시작한다.

인덱스와 슬라이싱

인덱스는 리스트에서 특정 순번의 원소를 가리키는 번호로, 0부터 시작한다. 여러 원소를 한 번에 가리키는 방법을 슬라이싱(slicing)이라 한다.

슬라이싱

리스트 l에 대해 인덱스 i의 원소는 l[i], 인덱스 i부터 j-1까지의 원소는 l[i:j], 인덱스 i부터 j-1까지 k 간격의 원소는 l[i:j:k]로 가리킨다.

l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l[2]
'data'
l[1:4]
[2.5, 'data', [4, 3]]
l[0:7:2]
[1, 'data', 1.0, 2]

메서드

리스트가 가진 유용한 메서드는 다음과 같다.

  • list.append(x): 리스트의 끝에 원소 x를 추가한다.
  • list.insert(i, x): 인덱스 i의 위치에 원소 x를 추가한다.
  • list.extend(s): 리스트의 끝에 객체 s의 모든 원소를 추가한다.
  • list.remove(x): 값이 x와 같은 첫 번째 원소를 삭제한다.
  • list.count(x): 원소 x의 개수를 센다.
  • list.index(x): 원소 x가 처음 나타나는 인덱스를 찾는다.
  • list.pop(i): 인덱스 i의 원소를 삭제한다.

remove와 pop

remove는 값을 기준으로, pop은 인덱스를 기준으로 원소를 삭제한다.

l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l.remove(2.5)
l
[1, 'data', [4, 3], 1.0, 1.5, 2]

remove(2.5)는 값이 2.5와 같은 원소를 삭제한다.

l = [1, 2.5, 'data', [4, 3], 1.0, 1.5, 2]
l.pop(2)
'data'
l
[1, 2.5, [4, 3], 1.0, 1.5, 2]

pop(2)는 인덱스 2(0부터 세어 세 번째 원소)인 'data'가 삭제된다.