티스토리 뷰

10.2.9 리스트 축약(List Comprehensions)

- 리스트 축약(List Comprehensions)은 리스트의 요소들 생성할 때 더 간결한 방법으로 생성하게 해주는 문법이다.

- 리스트 축약은 대괄호 안에 for문이나 if문을 이용해 리스트를 만드는 문법이다.

 

*리스트 축약 예제

1
2
3
4
5
6
7
8
list1 = [x for x in range(5)] # 0,1,2,3,4를 가지는 리스트 선언
print(list1) # list1 출력 , [0,1,2,3,4]
 
list2 = [0.5 * x for x in list1] # list1 각 요소에 0.5 곱하여 list2 생성
print(list2) # [0.0, 0.5, 1.0, 1.5, 2.0]
 
list3 = [x for x in list2 if x < 1.5#list2에서 1.5 미만 요소로 리스트3 생성
print(list3) # [0.0, 0.5, 1.0]
cs

 

*실행 결과

 

 

10.2.10 리스트 메소드(List Methods)

- 리스트를 생성 할 때, 우리는 리스트 클래스의 메소드들을 이용할 수 있다.

 

*리스트 클래스 내부 메소드

- 편의상 다음과 같은 양식으로 설명 *메소드이름(매개변수 : 매개변수의 타입)

메소드 

설명 

 append(x : object), 반환 타입 : None 

 리스트 맨 끝에 요소 x를 추가한다.

 count(x : object), 반환 타입 : int 

 리스트 안에 요소 x의 갯수를 반환한다.

 extend(x : list), 반환 타입 : None

 리스트 x에 있는 모든 요소를 메소드를 사용하는 리스트에 추가한다.

 index(x : object), 반환 타입 : int

 리스트에서 첫번째로 발견된 요소 x의 index를 반환한다.

 insert(index : int, x : object), 반환 타입 : None

 주어진 index 위치에 요소 x를 추가한다.

 pop(i) , 반환타입 : None

 주어진 위치(i)의 요소를 삭제하고 이 요소를 반환한다. i 작성은 선택 할 수 있는데, 만약 list.pop() 이라고 사용 할 경우 리스트의 마지막 요소를 삭제하고 반환한다.

 remove(x : object) : None

 리스트에서 첫번째로 발견된 요소 x를 제거한다.

 reverse() : None

 리스트의 요소 순서를 역으로 바꾼다.

 sort() : None

 리스트의 요소들을 오름차순으로 정렬한다.

 

*리스트 메소트 사용 예제

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
list1 = [2,3,4,1,32,4]
list1.append(19)
print("list1 :", list1) 
print("list1.count(4) : ", list1.count(4))
 
list2 = [99,54]
list1.extend(list2)
print("list1.extend(list2) : ",list1)
print("list1.index(4) : ", list1.index(4))
 
list1.insert(1,25)
print("list1.insert(1, 25) : ", list1)
 
print("list1.pop(2) : ",list1.pop(2))
print("list1 : ",list1)
print("list1.pop() : ",list1.pop())
print("list1 : ",list1)
 
list1.remove(32)
print("list1.remove(32)", list1)
 
list1.reverse()
print("list1.reverse()", list1)
 
list1.sort()
print("list1.sort()", list1)
cs

 

*실행결과

 

 

10.2.11 문자열을 분리하여 리스트에 넣기(Splitting a String into a List)

- str 클래스split 메소드를 제공한다.

- split 메소드문자열을 분리하여 분리된 요소들을 리스트에 넣는데 유용하게 사용된다.

 

*사용 형식

items = "Jane John Peter Susan".split()

  → ['Jane', 'John', 'Peter', 'Susan']

items = "09/20/2012".split("/")

        → ['09', '20', '2012']

 

10.2.12 리스트 입력하기(Inputting Lists)

- 리스트에 요소를 입력할 때 다음과 같은 두가지 방법이 있다.

- 하나는 for문을 이용해 하나에 한번씩 입력, 다른 하나는 split() 메소드를 이용한 입력이다.

- 경우에 따라 효율적인 걸 사용하면 된다.

 

*for문 이용

lst = [] # 리스트 생성 

print("숫자 10개를 입력하세요 : ")

for i in range(10):

lst.append(eval(input())

 

*split() 메소드 이용

# 문자열로 이루어진 숫자들을 읽어들인다. 

s = input("공백으로 구분지어 숫자 10개를 입력하세요 : ")

items = s.split() # 각 숫자들 나누기

lst = [eval(x) for x in items] # eval()을 이용해 문자열을 아이템들 변환, 리스트 생성

 

10.2.13 리스트 쉬프팅(Shifting Lists)

- 간혹 리스트의 요소들을 왼쪽이나 오른쪽으로 쉬프트(shift) 할 일이 생긴다.

- 파이썬 리스트 클래스에는 쉬프팅을 위한 메소드가 존재하지 않는다.

- 하지만 아래와 같이 함수를 만드는 방법으로 쉬프팅이 가능하다.

 

*리스트 쉬프팅 함수 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def shift(lst): # 왼쪽으로 쉬프트하는 함수
    temp = lst[0#첫번째 요소 할당
 
    # 왼쪽으로 쉬프트
    for i in range(1len(lst)):
        lst[i-1= lst[i]
 
    # 첫번째 요소를 리스트 마지막 위치로 옮기기
    lst[len(lst) - 1= temp
 
def main():
    list1 = [1,2,3,4,5,6,7,8,9,10]
 
    print("List1 before shifting : ", list1)
    shift(list1)
 
    print("List1 after shifting : ", list1)
 
 
main()
cs

 

*실행 결과

 

참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

댓글