티스토리 뷰
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(1, len(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
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]함수에서 리스트 반환, 문자 빈도수 세기 (0) | 2018.01.03 |
---|---|
[파이썬]리스트 복사, 함수에 리스트 전달하기 (0) | 2018.01.02 |
[파이썬]리스트 기초(2) (0) | 2017.11.25 |
[파이썬]리스트 기초(1) (0) | 2017.11.22 |
[파이썬]연산자 오버로딩과 특수메소드, Rational 클래스(유리수) (2) | 2017.08.24 |
- Total
- Today
- Yesterday
- 파이썬 함수
- 파이썬 문자열
- 백준 11501
- 파이썬 for
- 자바 에센셜 실습문제
- 파이썬 진수 변환
- 파이썬 while
- 파이썬 클래스
- 자바스크립트 그래프
- 파이썬 선택문
- 파이썬 단계적 개선
- css 그리드
- 백준 10451
- 파이썬 예제
- 파이썬
- css 박스
- 백준
- 파이썬 연산자
- 파이썬 객체
- 버츄어박스
- 자바
- 백준 1874
- 자료구조
- 파이썬 터틀
- 자바스크립트 자료구조
- 명품 c++ 실습
- 웹
- 파이썬 리스트
- 파이썬 if문
- css
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |