# 리스트 만들기 ( range )
[0,1,2,3] 이나 [100,101,102,103]과 같이
순차적인 정수 리스트를 만드는 가장 간단한 방법은
파이썬 내장 함수인 range()를 이용하는 것이다.
print( list(range(1,11) ) ) # [1,2,3,4,5,6,7,8,9,10]
dice=list(range(1,7))
print(dice) # [1,2,3,4,5,6]
a=list(range(2,10,2))
print(a) # [2,4,6,8]
예제 : 주사위 2개를 만들고 10000번 던져서 주사위 눈의 합이 10이 되는 확률을 구하기
1 2 3 4 5 6 7 8 | dice=list(range(1,7)) dice2=list(range(1,7)) import random as r cnt=0 for i in range (10000): if r.choice(dice)+r.choice(dice2)==10: cnt+=1 print(cnt/10000) |
# 리스트의 특정 위치의 요소 얻기
리스트의 특정 위치에 있는 요소값을 얻으려면 문자열과 마찬가지로 인덱싱을 이용한다.
a=[1,2,'a','b','c',[4,5,6]]
print(a[1]) # 2
print(a[5]) # [4,5,6]
print(a[5][0]) # 4
리스트 객체의 index() 메소드는
리스트에서 요소의 값을 알고 있을 때
그 요소가 최초로 나타나는 위치의 인덱스를 리턴한다.
a=[1,2,'a','b','c',[1,2,3]]
print(a.index(2)) # 1
print(a.index('a')) # 2
# 리스트에서 특정 구간에 있는 요소 추출하기
list=['a','b','c','d','e','f','g']
print(list[0:4]) # ['a', 'b', 'c', 'd']
print(list[2:]) # ['c', 'd', 'e', 'f', 'g']
print(list[:3]) # ['a', 'b', 'c']
* : 을 두 번 사용하면 추출할 간격을 조정할 수 있다.
list=['a','b','c','d','e','f','g']
print(list[1::2]) # ['b', 'd', 'f']
# 리스트 안에 있는 요소 변경하기
list=['a','b','c,','d','e']
list[2]='z'
print(list) # a,b,z,d,e
# a~z가 담긴 리스트 만들기
1 2 | import string print(string.ascii_lowercase) |
이렇게 string 모듈을 활용해서 리스트를 만드는 방법이 있고,
1 2 3 4 5 | import string list=[] for i in string.ascii_lowercase: list.append(i) print(list) |
chr를 활용해서 만드는 방법이 있다.
1 2 3 4 | a=[] for i in range(97,123): a.append(chr(i)) print(a) |
# 리스트 요소 순서를 역순으로 만들기
리스트 객체의 reverse() 메소드는 리스트의 모든 요소 순서를 거꾸로 만든다.
list=['a','b','c','d','e','f','g']
list.reverse()
print(list) # ['g', 'f', 'e', 'd', 'c', 'b', 'a']
예제 : emp2.csv 파일에 있는 사원의 월급을 내림 차순으로 정렬하기
1 2 3 4 5 6 7 8 9 10 11 | import csv file=open('c:\\data\\emp2.csv',encoding='UTF-8') emp_122=csv.reader(file) a=[] for i in emp_122: a.append(i[5]) print(a) a.sort() print(a) # 오름차순으로 정렬 a.reverse() print(a) # 역순으로 정렬 -> 내림차순 |
* reversed() reverse()와 동일하게 시퀀스 자료형의 순서를 역순으로 만드는 메소드이지만
차이점은
reverse() : 원본 데이터를 역순으로 변환
reversed() : 원본 데이터는 역순으로 변환하지 않고 반환
list_A=['a','b','c','d','e','f','g']
R_list=reversed(list_A)
print(list(R_list)) # ['g', 'f', 'e', 'd', 'c', 'b', 'a']
print(list_A) # ['a','b','c','d','e','f','g']
list_A.reverse()
print(list_A) # ['g', 'f', 'e', 'd', 'c', 'b', 'a']
# 리스트 합치기
두 개의 리스트를 연결하여 새로운 리스트를 만드는 방법은
+ 연산자를 이용하여 더하면 된다.
listdata1=['a','b','c','d']
listdata2=['e','f','g','h']
listdata3=listdata1 + listdata2
print(listdata3) # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
# 리스트 반복하기
리스트 * 숫자는 리스트를 n번 반복해서 새로운 리스트를 만든다.
예를 들어, list*2는 list + list 와 동일한 결과가 출력된다.
listdata=list(range(0,3))
result=listdata*3
print(result) # [0, 1, 2, 0, 1, 2, 0, 1, 2]
# 리스트에 요소 추가하기 ( append )
리스트 객체의 append()는 괄호안의 요소를 리스트에 추가하는 메소드 함수이다.
listdata=[]
listdata.append('a')
listdata.append('b')
print(listdata) # ['a' , 'b']
# 리스트에 있는 요소 개수 구하기 ( len )
파이썬 내장함수인 len()은 시퀀스 자료형의 크기를 구하는 함수다.
len()을 리스트에 적용하면 리스트의 모든 요소의 개수를 리턴한다.
a=['파','이','썬',['파','이','썬']]
print(len(a)) #4
# 리스트에서 특정 요소 개수 구하기 ( count )
리스트.count('요소') 은 객체 리스트에서 '요소'의 개수를 구하는 메소드이다.
box=['파','이','이','썬']
print(box.count('파')) # 1
print(box.count('이')) # 2
# 리스트 제거하기 ( del )
리스트 자체를 메모리에서 제거하려면 다음과 같이 del 명령어를 수행한다.
a=[1,2,3,3,3,4]
del a
print(a) # NameError : name 'a' is not defined --> 메모리에서 완전히 지워졌음
마치 SQL의 DROP TABLE 같은?
# 리스트 요소 무작위로 섞기 ( shuffle )
파이썬 기본 모듈인 random은 난수를 발생시키는 모듈인데
리스트의 요소를 무작위로 섞는 shuffle도 갖고 있다.
1 2 3 4 | from random import shuffle a=[1,2,3,4,5,6,7,8,9,10] shuffle(a) print(a) |
'나 취준생 > 파이썬' 카테고리의 다른 글
딕셔너리 (0) | 2020.12.10 |
---|---|
파이썬으로 히스토그램 그래프 그리기 (0) | 2020.12.09 |
파이썬으로 막대 그래프 그리기 (matplotlib.pyplot) (0) | 2020.12.08 |
파이썬 문자열 관련 함수들 (0) | 2020.12.08 |
Pandas 파생변수, 오름차순 내림차순 정렬 (0) | 2020.12.07 |