이번 포스팅에서는 파이썬의 가장 기본이 되는 리스트에 관한 사용법을 정리해보려고 한다.
본인의 경우, 수리모델을 코딩할 때 numpy와 더불이 많이 사용한다.
그래서 이번 기회에 전체적으로 한번 정리하는 의미에서 포스팅을 작성해보려고 한다.
1. Index() : 리스트의 특정 요소의 위치를 반환하는 파이썬의 내장함수
week = ['월', '화', '수', '목', '금', '토', '일', '수'] # week라는 리스트를 정의
component = '수' # component를 week 리스트의 요소 중 하나인 '수'로 정의
position = week.index(component) # 리스트 week에서 '수'의 index를 반환 (이때, 찾는 범위는 전 범위)
print('%s요일은 일주일 중 %d번째에 위치하고 있습니다.' %(component, position))
position1 = week.index(component, 5). # 리스트 week에서 '수'의 index를 반환 (이때, 찾는 범위는 인덱스 5이후를 반환
print('%s요일은 일주일 중 %d번째에 위치하고 있습니다.' %(component, position1))
코드 실행 결과
수요일은 일주일 중 2번째에 위치하고 있습니다.
수요일은 일주일 중 7번째에 위치하고 있습니다.
이를 응용하면 리스트의 원소를 다른것으로 대체할 수 있다.
week = ['월', '화', '수', '목', '금', '토', '일', '수']
com = '수'
for i in week: # week 리스트의 원소 갯수만큼 반복
if i == com: # 만약 week의 원소와 com이 같다면
position = week.index(i) # position을 i의 index로 정의하고
week[position] = '수요일' # week의 position으로 반환된 index의 내용을 '수요일' 바꿈
week
코드 실행 결과
['월', '화', '수요일', '목', '금', '토', '일', '수요일]
2. reverse() : 리스트의 요소를 거꾸로 정렬하는 내장함수
week = ['월', '화', '수', '목', '금', '토', '일']
week.reverse() # 역순으로 만들라는 내장함수 method임.
print(week)
new_week = week.reverse()
print(None)
코드 실행 결과
['일', '토', '금', '목', '수', '화', '월']
None
new_week = week.reverse() 이런식으로 코드를 작성하면,
new_week를 week 리스트의 역순으로 정렬된 리스트로 정의할 수 있을 것 같지만, 이런식으로 작성하면 안된다는것을 알면 좋을 것 같다.
이것 말고 다른 방법으로 리스트의 요소를 거꾸로 정렬 할 수 있다.
old_data = list(range(5)) # old_data = [0, 1, 2, 3, 4] 로 정의
new_data = reversed(old_data). # new_data를 old_data의 역순으로 정렬한 리스트로 정의
print(old_data)
print(new_data) # new_data의 주소값만을 반환함.
print(list(new_data)) # 주소값을 list형태로 반환
코드 실행 결과
[0, 1, 2, 3, 4] <list_reverseiterator object at 0x7fce8a9970d0> [4, 3, 2, 1, 0]
3. append() : 리스트의 마지막에 요소를 추가하는 내장함수
week = ['월', '화', '수', '목', '금', '토']
print('요소 추가 전 : ', week)
week.append('일요일') # week 리스트 마지막에 '일요일' 요소를 추가
print('요소 추가 후 : ', week)
코드 실행 결과
요소 추가 전 : ['월', '화', '수', '목', '금', '토']
요소 추가 후 : ['월', '화', '수', '목', '금', '토', '일요일']
4. insert() : 리스트의 특정 위치에 요소를 추가하는 내장함수
number = [0,1,3,4,5,6,7]
print(number)
number.insert(2,'two') #number 리스트의 2번째 위치에 'two'를 추가
print(number)
코드 실행 결과
[0, 1, 3, 4, 5, 6, 7]
[0, 1, 'two', 3, 4, 5, 6, 7]
5. del : 리스트의 특정 위치를 기준으로 요소를 제거 / 리스트를 제거하는 내장함수
week = ['월', '화', '수', '목', '금', '토', '일']
del week[0] # 리스트 week의 0번째 요소인 '월'를 제거
print('"월"이 제거된 리스트 : ' , week) # 리스트 week 출력
del week[-2] # 리스트 week의 끝에서 2번째 요소인 '토'를 제거
print('"토"가 제거된 리스트 : ' , week). # 리스트 week 출력
country = ['usa', 'japan', 'northkoea', 'china', 'france', 'canada', 'germany']
del country[2:4] # 리스트 원소 2번부터 3번을 제거 해야한다는 것임. 4번은 미포함
print(country)
del country print(country) # country라는 리스트 삭제
코드 실행 결과
"월"이 제거된 리스트 : ['화', '수', '목', '금', '토', '일']
"토"가 제거된 리스트 : ['화', '수', '목', '금', '일']
['usa', 'japan', 'france', 'canada', 'germany']
6. remove() : 리스트의 특정 요소를 제거
fruit = ['apple', 'kiwi', 'banana', 'melon', 'orange']
print('삭제 전 : ', fruit)
fruit.remove('kiwi) # fruit 리스트에서 'kiwi'요소를 특정하여 제거
print('삭제 후 : ', fruit)
코드 실행 결과
삭제 전 : ['apple', 'kiwi', 'banana', 'melon', 'orange']
삭제 후 : ['apple', 'kiwi', 'melon', 'orange']
7. count() : 리스트에서 특정 요소의 갯수를 구하는 내장함수
example = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,7,7,7,8,9,10,10]
c1 = example.count(2) # example 리스트에서 '2'가 몇개 있는지 반환
c7 = example.count(7). # example 리스트에서 '7'이 몇개 있는지 반환
print('2의 갯수는 : ', c1)
print('7의 갯수는 : ', c7)
코드 실행 결과
2의 갯수는 : 2
7의 갯수는 : 3
8. sum() : 리스트 내부에 있는 숫자의 합을 구하기
num_list = [1,2,3,4,5,6,7,8,9,10]
total_sum = sum(num_list)
print('num_list의 숫자 총합은', total_sum,'입니다.')
코드 실행 결과
num_list의 숫자 총합은 55 입니다.
9. enumerate() : 리스트에서 요소와 그 인덱스를 쌍으로 추출하는 내부 함수
days = ['월', '화', '수', '목', '금', '토', '일']
example = list(enumerate(days)) # enumerate는 반복 가능한 자료의 인덱스와 요소를 쌍으로 추출하여 리스트로 반환) print(example) # (인덱스, 요소)를 쌍으로 추출한 리스트를 출력
for i, j in enumerate(example):
print('한주의 %d번째 요일은 %s요일입니다.'%(i,j))
코드 실행 결과
[(0, '월'), (1, '화'), (2, '수'), (3, '목'), (4, '금'), (5, '토'), (6, '일')]
한주의 0번째 요일은 월요일입니다.
한주의 1번째 요일은 화요일입니다.
한주의 2번째 요일은 수요일입니다.
한주의 3번째 요일은 목요일입니다.
한주의 4번째 요일은 금요일입니다.
한주의 5번째 요일은 토요일입니다.
한주의 6번째 요일은 일요일입니다.
10. sort() : 리스트의 요소를 오름차순 또는 내림차순으로 정렬
namelist = ['mary','sam','ali','bob','kelly','clay']
print('원래 리스트 : ',namelist)
namelist.sort()
print('정렬 리스트 : ',namelist)
s_namelist = sorted(namelist, reverse = True) # 역순으로 정렬하는 의미임.
print('역순 리스트 : ',s_namelist)
코드 실행 결과
원래 리스트 : ['mary', 'sam', 'ali', 'bob', 'kelly', 'clay']
정렬 리스트 : ['ali', 'bob', 'clay', 'kelly', 'mary', 'sam']
역순 리스트 : ['sam', 'mary', 'kelly', 'clay', 'bob', 'ali']
11. 리스트에서 요소 추출하기
#리스트에서 특정구간의 요소 추출하기
week = ['월', '화', '수', '목', '금', '토', '일']
front = week[0:4] # 리스트의 0번부터 4번까지 추출하기 / 슬라이스를 활용한 것임
back = week[5:] # 리스트의 5번부터 끝까지 / 슬라이스를 활용한 것임.
print(front)
print(back)
print("- - - - - - - - -")
# 리스트에서 일정한 간격으로 요소 추출하기
evenweek = week[::2] # 짝수 index만 추출, 0,2,4,6 가장 마지막 2는 index의 간격을 의미
oddweek = week[1::2] # 홀수 index만 추출 , 1,3,5,7 index번호 1부터 시작해서 간격 2씩 띄어서 추출
print(evenweek)
print(oddweek)
코드 실행 결과
['월', '화', '수', '목']
['토', '일']
- - - - - - - - -
['월', '수', '금', '일']
['화', '목', '토']
'Python' 카테고리의 다른 글
파이썬 내장함수 (0) | 2022.01.22 |
---|---|
딕셔너리(Dictionary) 사용법 정리 (0) | 2022.01.17 |
파이썬 networkx(graph 노드 위치 설정) (0) | 2022.01.09 |
파이썬 Networkx (node와 edge 제거) (0) | 2022.01.07 |
파이썬 Networkx (node, edge 생성) (0) | 2022.01.04 |