여정의 기록
파일구조 List 본문
List
여러개의 자료 저장 가능 -> 각 자료를 원소라고 함
데이터를 일렬로 늘여놓은 구조
여러가지 자료형을 자유롭게 넣을 수 있다. -> dynamic 하다. / array of numpy : static 하다, 속도가 매우 빠르다.
단, 메모리에 기억되므로 메모리 범위한에서 가능하다.
| 리스트=[요소값, 값, 값 ... ]
a=[] # 빈 리스트
a2=[10,20,30] #요소(element)
a3=['hi','hello']
a4=[10,20,'hi']
a5=[10,'hi',1.15,True]
# list 함수를 그냥 대입해서 빈리스트를 만들 수도있다.
a6=list()
slice 방법
a=[10,20,30,40,50]
# slice
a[0:3] #시작번호(포함):끝번호(포함x), list 형태
# list에서 list 형태를 뽑아낸다.
enumerate(index, data)
인덱스와 데이터 한번에 출력
a=[1,2,3]
enumerate(a)
for idx, value in enumerate(a):
print(idx, value)
for idx, value in enumerate(a, start=1) #index 1부터 시작
print(idx, value)
곱셈, 덧셈
a=[10,20]
b=[30,40]
a*3
a+b
len
list, str, dictionary, tuple type can use 'len()' length .
len("hello") # 5
어떤 리스트의 원하는 원소값에 다른 type 값을 붙여 원소값을 변경하고 싶을 때는 형변환해야 한다.
s=[10,20]
print(s[0]) # 10
print(str(s[0]) + "hi")
# 활용 예시
if len("hello")==5:
print("ok")
count
해당 데이터 갯수 (문자열에서의 함수가 List에서도 사용이 가능하다. x.x)
a.count(4) # a list안에 4라는 데이터 값이 몇개 있는가
range
리스트 타입의 숫자 정수 범위
list(range(10))
list(range(0,10,2)) # 0에서 9까지 숫자 증감값 2
list(range(10,0,-1)) # 증감값이 -1이기 때문에 10,9,8,... 감소가능하다
sort, reverse, sorted
sort() 정렬하기
ascii code value 기준! 으로 정렬하여 바로 저장됨
a.sort()
reverse() 역순
해당 변수의 역순으로 저장됨
a.reverse()
sort와 reverse를 together
a.sort()
a.reverse()
# 혹은
a.sort(reverse=True) # 로 가능
sorted()
자동저장은 안하고 정렬만
sorted(a)
slicing 이용한 reverse
a[-1::-1]
# -1 번째 인덱스부터 전체를 -1 증감값으로 리스트 나열
chr()
인코딩 : 코딩화(문자, 숫자 등을 코드 0과1로 변환)
디코딩 : 코딩화된 것을 사람이 알아볼 수 있는 문자, 숫자로 변환
인코딩/디코딩 방식 종류 : ascii(7bit), ebcdic, bcd, utf8, utf16, euc-kr 등...
모든 문자/숫자를 7bit로 표현 : ascii, 7bit = 2의 7승 = 128가지 문자표현 가능
0 ~ 127
char(65) 괄호안에 있는 아스키코드를 문자로 변환하여 출력한다. -> A
# ascii를 list에 그냥 넣을 수도 있다.
b=["Hi","Hello","Apple","B",'c','d','0', chr(95)]
수정, insert, append, extend, remove, pop
element 수정
a=[10,20,30]
a[2]=40 # index로 골라서 값 할당
insert()
list내 특정 인덱스값 위치에 데이터 삽입 , 그 후 인덱스값은 뒤로 밀려남
a.insert(index, value)
a=[10,20,30]
a.insert(1, 40)
# 10, 40, 20, 30
append()
list의 마지막 element에 추가됨
a.append(value)
a.append([50,60])
a.append(50)
extend()
list 형태로 넣어줘야한다.
a.extend([40,30])
슬라이스 이용한 여러 데이터 추가
인덱스 시작번호와 끝번호를 같게하면 가능
a[3:3]=[20,30]
remove()
데이터 값 찾아서 삭제
같은 값이 여러개 있다면 index 값이 작은 순서대로 체크하면서 가장 처음 나타나는 value 값 하나만 삭제
a.remove(value)
del()
변수삭제 혹은 index값 이용한 원소값 삭제
# a 변수 삭제
del a
# a의 index 2번 삭제
del a[2]
# a의 index 2번부터 삭제
del a[2:]
clear()
all remove
a.clear()
pop()
가장 마지막 요소 혹은 특정 index 지목 제거
a=[10, 20, 30]
# 마지막 요소 삭제
a.pop() # 30이 지목, a에서 삭제된다.
data=a.pop() 지목되고 제거되는 데이터가 담긴다.
# index 1자리에 있는 요소가 지목되고 제거된다.
a.pop(1)
최솟값 최대값
아래와 같이 구할수도 있고
a=[2,5,1]
# 1.
small=a[0] # 임시 지정
for i in a :
if i < small :
small=i
print(small)
# 2.
a.sort()
print(a[0])
만들어진 함수를 이용할 수도 있다.
min(a) # 최솟값 함수
max(a) # 최댓값 함수
sum()
총합
sum(a)
List comprehension (list 내포(표현식))
list type 자체로 for, if 문 등 사용할 수 있는 식
# x는 list의 지역변수
[x for x in range(10)] # [0,1,2,3,4,5,6,7,8,9]
list(x for x in range(10))
range(10)가 if i%2==0이면 i로써 리스트에 저장됨
[i for i in range(10) if i%2==0]
# 이중 for문
[i+j for i in a for j in b]
# if else문
["even" if i%2==0 else "odd" for i in range(10)]
'공부 > Python' 카테고리의 다른 글
set 집합 (0) | 2022.02.10 |
---|---|
Tuple (0) | 2022.02.10 |
Python의 재미있는 문법들/format... 문자열 내장 함수 (0) | 2022.02.09 |
Python의 재미있는 문법들/map, sep, ==, 비교연산자와 논리연산자, bool (0) | 2022.02.07 |
Python의 재미있는 문법들/range, 연산, 함수란, 형변환, del, 값 할당, None, 축약형, input, split, """, \n, len (0) | 2022.02.07 |