Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

행복한 개구리

Python 공부내용 21.09.23. Python - List 1 본문

Python/공부내용

Python 공부내용 21.09.23. Python - List 1

HappyFrog 2021. 9. 23. 20:15

W3Schools의 Python Tutorial을 보며 해석하고 정리한 글입니다.

오역이 존재할 수 있습니다

저도 파이썬은 처음이니 가볍게 봐주세요 :D 

W3Schools


파이썬 리스트

mylist = ["apple", "banana", "cherry"]

 

리스트

리스트는 여러가지 아이템을 하나의 변수에 저장할 때 사용합니다.

리스트는 데이터들을 배열 형식으로 저장할 수 있는 4가지의 빌트인 데이터타입중 하나이며 다른 3가지는 튜플, 셋(Set, 집합같은 개념), Dictionary가 있으며 모두 서로 특질이나 쓰임새가 다릅니다.

리스트는 대괄호  []  를 사용하여 만듭니다.

thislist = ["apple", "banana", "cherry"]
print(thislist)

▲ 결과값

 

리스트 항목들(List Items)

리스트의 아이템들은 순서가 지정되고 변경 가능하며 중복되는 값을 허용합니다.

리스트의 아이템들은 인덱스를 가지며 첫 항목의 인덱스는  [0] , 두번째 항목의 인덱스는  [1] 입니다.

 

순서 정돈/정렬 하기(Ordered)

위에서 리스트의 아이템들은 순서를 지정할 수 있다고 했는데, 이것은 말 그대로 아이템들에게 순서를 정의해줄 수 있다는 뜻이며, 그리고 그 순서는 바뀌지 않을것입니다.

만약 당신이 새로운 항목을 리스트에 추가한다면 새로운 아이템은 리스트의 마지막에 위치하게됩니다.

 

주의 : 순서를 바꿀 수 있는 리스트 메서드들이 존재하지만 보통의 경우에는 리스트의 아이템들 순서는 바뀌지 않습니다.

 

변경 가능(Changeable)

리스트는 변경 가능이 가능합니다. 즉, 우리는 리스트가 생성되고 그것의 아이템들을 바꾸거나 추가하거나 제거할 수 있습니다.

 

중복 가능(Allow Duplicates)

리스트에 인덱스들이 매겨진 후, 리스트는 같은 값을 가지는 아이템들을 가질 수 있습니다.

thislist = ["apple""banana", "cherry", "apple", "cherry"]
print(thislist)

▲ 결과값


파이썬 - 리스트의 아이템들에 접근하기(Access List Items)

아이템들에 접근하기(Access Items)

리스트 항목(아이템)은 인덱스를 가지며 당신은 해당 인덱스를 통해 리스트의 항목들을 참조할 수 있습니다.

thislist = ["apple", "banana", "cherry"]
print(thislist[1])

 

▲ 결과값

 

주의 : 첫 항목(아이템)의 인덱스는 0입니다.

 

음수 인덱스 사용(Negative Indexing)

음수로 된 인덱스는 끝에서부터 시작되는 것을 의미합니다.

 -1  은 마지막 항목을 나타내며,  -2  는 끝에서부터 2번째에 있는 아이템을 의미하는 식으로 진행됩니다.

thislist = ["apple", "banana", "cherry"]
print(thislist[-1])

▲ 결과값

 

인덱스 범위지정(Range of Indexes)

당신은 범위의 시작과 끝을 지정함으로써 인덱스들의 범위를 특정할 수 있습니다.

범위를 특정할 때 반환되는 값은 새로운 리스트와 특정되어진 항목들입니다.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5])

▲ 결과값

 

주의 : 검색하는 인덱스의 범위에서 시작인덱스 2의 항목은 포함되지만 끝 인덱스 5는 포함되지 않습니다. 즉, [2:5]는  '2 <= range < 5'  의 값을 갖습니다. 

또한 첫번째 항목의 인덱스는 0임을 기억하세요.

 

시작 인덱스를 비운 채로 실행한다면 범위는 리스트의 처음부터 해당됩니다.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[:4])

▲ 결과값

 

끝 인덱스를 비운채로 실행한다면 범위는 리스트의 끝까지 해당됩니다.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:])

▲ 결과값

 

음수 인덱스들의 범위

음수 인덱스들로 범위를 지정하여 당신이 끝에서부터 원하는 범위를 검색할 수 있습니다.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[-4:-1])

▲ 결과값

 

항목이 존재하는지 확인하기(Check if Item Exists)

리스트에 특정한 항목이 존재하는지를 알고싶다면 리스트에서  in  키워드를 사용하세요

thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
	print("Yes, 'apple' is in the fruits list")

▲ 결과값

 

파이썬 - 리스트의 항목들 바꾸기(Python - Change List Items)

항목의 값 바꾸기

특정한 항목의 값을 바꾸려면 해당 인덱스를 참조해야합니다.

thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"
print(thislist)

▲ 결과값 // banana가 blackcurrant로 바뀐 결과가 나옵니다. blackcurrant는 블랙베리라고 하네요.

 

지정한 범위의 항목들의 값을 바꾸기(Change a Range of Item Values)

지정한 범위내의 항목들의 값을 바꾸기 위해서는 새로운 값들로 리스트를 정의해주어야 하며 그 값들로 바꿔줄 기존 리스트의 범위를 지정해주어야 합니다.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "mango"]
thislist[1:3] = ["blackcurrant", "watermelon"]
print(thislist)

▲ 결과값

 

만약 당신이 대체시킬 아이템들의 수보다 더 많은 것을 삽입하려한다면 새로운 아이템들은 당신이 지정한 곳에 삽입될 것이며 남는 아이템들은 그에 따라 이동될것입니다.

thislist = ["apple", "banana", "cherry"]
thislist[1:2] = ["blackcurrant", "watermelon"]
print(thislist)

▲ 결과값

 

주의 : 리스트에 대체할 항목들보다 더 많은 항목들을 삽입하려 할 때 리스트의 길이는 변합니다.

 

만약 당신이 대체할 아이템들보다 더 적은 수의 아이템을 삽입한다면 새로운 아이템들은 당신이 지정한 곳에 삽입되며 남은 아이템들은 그에 따라 이동됩니다.

thislit = ["apple", "banana", "cherry"]
thislist[1:3] = ["watermelon"]
print(thislist)

▲ 결과값

 

아이템 삽입하기(Insert Items)

리스트 아이템들을 기존 값들을 대체하는 방식이 아닌 새롭게 삽입하기 위해서 우리는  insert()  메서드를 사용할 수 있습니다.

 insert()  메서드는 지정한 인덱스에 아이템을 삽입해줍니다.

thislist = ["apple", "banana", "cherry"]
thislist.insert(2, "watermelon")
print(thislist)

▲ 결과값


리스트에 아이템 추가하기(Add List Items)

아이템 추가하기/덧붙이기 (Append Items)

리스트의 마지막에 항목을 추가하고 싶다면  append()  메서드를 사용하면 됩니다.

thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist)

▲ 결과값

 

아이템 삽입하기(Insert Items)

특정한 인덱스에 항목을 삽입하고 싶다면  insert()  메서드를 사용하면 됩니다.

 insert()  메서드는 특정 인덱스에 항목을 삽입해줍니다.

thislist = ["apple", "banana", "cherry"]
thislist.insert(1, "orange")
print(thislist)

▲ 결과값

 

주의 : 위 예시에서 보이듯이 리스트의 길이가 늘어나서 길이가 4가 되었습니다.

 

리스트 늘리기(Extend List)

다른 리스트의 요소들을 현재 리스트에 추가하기 위해서는  extend()  메서드를 사용하면 됩니다.

thislist = ["apple", "banana", "cherry"]
tropical = ["mango", "pineapple", "papaya"]
thislist.extend(tropical)
print(thislist)

▲ 결과값

요소는 리스트의 마지막에 추가될것입니다.

 

이터러블 형식 추가하기(Add Any Iterable)

 extend() 메서드는 리스트 뿐만 아니라 다른 이터러블(iterable)객체들을 추가할 수 있습니다.

thislist = ["apple", "banana", "cherry"]
thistuple = ("kiwi", "orange")
thislist.extend(thistuple)
print(thislist)

▲ 결과값

 

참고 - 파이썬에서 이터러블(iterable) 객체는 단순하게 말하여 반복 가능한 객체를 말합니다.


파이썬 - 리스트의 아이템들 제거하기(Remove List Items)

특정한 아이템 제거하기(Remove Specified Item)

 remove()  메서드는 특정한 항목을 지워줍니다.

thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
print(thislist)

▲ 결과값

 

만약 당신이 인덱스를 지정하지 않았다면,  pop()  메서드를 통해 끝에 있는 항목을 제거할 수 있습니다.

thislist = ["apple", "banana", "cherry"]
thislist.pop()
print(thislist)

▲ 결과값

 

 del  키워드는 리스트를 완전하게 지워줍니다.

thislist = ["apple", "banana", "cherry"]
del thislist

▲ 결과값 // thislist라는 객체가 존재하지 않는데 출력하려고 했기 때문에 오류가 나는 모습입니다.

 

리스트 비우기(Clear the List)

 clear()  메서드는 리스트를 비워줍니다.

리스트의 객체는 여전히 존재하며 다만 리스트의 내용물들을 비울 뿐입니다.

thislist = ["apple", "banana", "cherry"]
thislist.clear()
print(thislist)

▲ 결과값


파이썬 - 리스트 순환하기(Loop Lists)

리스트를 통해 반복시키기

당신은

 for

 반복문을 사용하여 리스트의 항목들을 반복할 수 있습니다.

thislist = ["apple", "banana", "cherry"]
for x in thislist:
	print(x)

▲ 결과값 // 서로 다른 실행단위에서 출력되었기 때문에 한 줄에 리스트의 요소 하나씩만 출력된 모습입니다.

 

인덱스 번호를 통해 순환하기

당신은 또한 리스트의 항목들의 인덱스를 참조하여 반복할 수 있습니다.

 Use()  그리고  len()  함수를 사용하면 적합한 이터러블을 생성할 수 있습니다.

thislist = ["apple", "banana", "cherry"]
for i in range(len(thislist)):
	print(thislist[i])

▲ 결과값

위 예시에서는  [0, 1, 2]  값을 가진 이터러블을 생성했습니다.

 

While 반복문 사용하기

당신은  while  반복문을 통하여 리스트의 아이템들을 순환할 수 있습니다.

 len()  함수를 이용하여 리스트의 길이를 측정하고 0에서 시작하여 리스트 내용물들의 인덱스를 참조하여 처음부터 끝까지 리스트의 아이템들을 순환할 수 있습니다.

한번 반복할 때마다 인덱스를 1씩 올려주는 것을 기억하세요

thislist = ["apple", "banana", "cherry"]
i = 0
while i < len(thislist):
	print(thislist[i])
	i = i + 1

▲ 결과값

 

리스트 작성 표기법을 사용하여 반복하기(Looping Using List Comprehension)

List Comprehension은 리스트를 순환하는데 가장 짧은 구문을 제공합니다.

thislist = ["apple", "banana", "cherry"]
[print(x) for x in thislist]

▲ 결과값

 

참고 - List Comprehension(리스트 작성 표기법)은 일부 프로그래밍 언어에서 사용가능한 문법적 구조입니다.

- 위키백과


파이썬 - List Comprehension

List Comprehension

List Comprehension은 당신이 이미 존재하는 리스트의 값들을 기반으로 새로운 리스트를 만들 때 가능한 짧은 구문을 제공해줍니다.

 

예를 들어

당신이 '과일' 리스트에서 'a'글자가 들어가는 과일들만 포함하는 기반한 새로운 리스트를 원합니다. 이 때 List Comprehension없이는 당신은 for문과 가정문을 사용하여야 합니다.

fruits = ["apple", "banana", "cherry ", "kiwi", "mango"]
newlist = []

for x in fruits:
	if "a" in x:
    	newlist.append(x)
        
print(newlist)

▲ 결과값

 

이것을 List Comprehension으로는 한줄의 코드로 구현할 수 있습니다.

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)

▲ 결과값

 

구문

newlist = [expression for item in iterable if condition == True]

 기존의 리스트의 값들을 바꾸지 않으며 반환하는 값은 새로운 리스트입니다.

 

조건문

조건문은 필터와 같아서  True  라고 평가된 항목들만 허용합니다.

newlist = [x for x in fruits if x != "apple"]

▲ 결과값

 

조건문  if x != "apple"  부분은 "apple"이라는 요소만  True  로 평가할 것이며 "apple"을 제외한 모든 요소들을 포함하는 새로운 리스트를 만듭니다.

조건문은 선택적이며 생략될 수 있습니다.

#if문없이 선언한다면
newlist = [x for x in fruits]

 

Iterable

Iterable은 리스트, 튜플, 셋 등과 같은 반복 가능한 객체입니다.

newlist = [x for x in range(10)]
print(newlist)

▲ 결과값

 

같은 예시지만 조건문을 붙여본다면 :

new list = [x for x in range(10) if x < 5]

▲ 결과값 // 조건문을 사용하니 확실히 선별하는데 용이한 모습입니다.

 

표현식

표현식은 Iteration에 있는 현재 항목이지만 결과이기도 합니다. 새로운 리스트안의 항목과 같이 끝나기 전에 조작할 수 있습니다.

fruits = ["apple", "banana", "cherry"]
newlist = [x.upper() for x in fruits]
print(newlist)

▲ 결과값 // 항목들이 모두 대문자로 바뀝니다.

 

당신은 당신이 원하는 결과로 설정할 수 있습니다.

# 새로운 리스트의 모든 값에 "hello" 할당하기
fruits = ["apple", "banana", "cherry"]
newlist = ['hello' for x in fruits]
print(newlist)

▲ 결과값

 

표현식은 필터같지 않은 조건문을 포함할 수 있지만 결과를 조작하는 하나의 방법입니다.

fruits = ["apple", "banana", "cherry"]
newlist = [x if x != "banana" else "orange" for x in fruits]
print(newlist)

▲ 결과값 // 값이 바나나가 아니라면 아이템을 그대로 반환하고 바나나라면 오렌지를 반환하는 식입니다.