반응형
L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(len(L))  # 출력 : 10
print(L[1])  # 출력 : 1
print(L[-1])  # 출력 : 9
print(L[1: 3])  # 출력 : [1 , 2]
print(L[::2])  # 출력 : [0, 2, 4, 6, 8]
print(L[::-1])  # 출력 : [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(L[:])  # 출력 : [0, 1 , 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9]
L[0:8] = []  # 출력 : [8, 9]
print(L + L)  # 출력 : [8, 9, 8, 9]
print(L * 3)  # 출력 : [8, 9, 8, 9, 8, 9]

L = list(range(10))  # 출력 : [0, 1 , 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9]
print(list(range(5, 15, 2)))  # 출력 : [5, 7, 9, 11, 13]
print(list(range(10, 1, -1)))  # 출력 : [10, 9, 8, 7, 6, 5, 4, 3, 2]

s = [1, 2, 3]
s.append(5)  # 출력 : [1, 2, 3, 5]
s.insert(3, 4)  # 출력 : [1, 2, 3, 4 , 5] 
print(s.index(3))  # 출력 : 2
print(s.count(2))  # 출력 : 1
s.remove(1)  # 출력 : [2, 3, 4, 5]
s.extend([60, 70])  # 출력 : [2, 3, 4, 5, 60, 70]
s.append([5, 6])  # 출력 : [70 , 60, 5, 4, 3, 2, [5,6]]
print(4 in L)  # 출력 : True
del L[0]  # 출력 : [2, 3, 4]


a = ['spam', 'eggs', 100, 1234]
a[2] = a[2] + 23
print(a)  # 출력 : ['spam', 'eggs', 123, 1234]

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(a[1:3][1])  # 출력 : [7,8,9]

L = [k * k for k in range(10)]
print(L)  # 출력 : [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(sum(L))  # 출력 : 285

L = [k * k for k in range(10) if k % 2 == 1]
print(L)  # 출력 : [1, 9, 25, 49, 81]

L = [(i, j, i * j) for i in range(2, 100, 2) for j in range(3, 100, 3) if (i + j) % 7 == 0]
print(L)  # 출력 : [(2, 12, 24), (2, 33, 66) ..

print(list({1: 2, 3: 4, 5: 6}))  # 출력 : 1, 3, 5

리스트파이썬만의 독자적인 자료형으로 배열과 유사한 성격을 지니고 값을 변경할 수 있는 점에서 튜플과 다릅니다.

대괄호[]로 감싸져있는 형태입니다.

 

len(리스트)으로 리스트 내용 개수를 알 수 있습니다. print(len(L)) # 출력 : 10
인덱스로 또한 접근이 가능합니다. print(L[1]) # 출력 : 1
슬라이싱도 또한 가능합니다. print(L[1: 3]) # 출력 : [1 , 2]
튜플과 똑같이 건너뛰면서 인덱스로 접근할 수 있습니다. print(L[::2]) # 출력 : [0, 2, 4, 6, 8]
튜플과 동일하게 슬라이싱으로 역으로 전체를 출력할 수 있습니다. print(L[::-1]) # 출력 : [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
튜플과 동일하게 슬라이싱으로 전체를 출력할 수 있습니다. print(L[:]) # 출력 : [0, 1 , 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9]
값을 없앨 때 슬라이싱을 이용해 없앨 수 있습니다.

여기에선 0 ~ 7(8-1) 인덱스 값을 빈 리스트를 넣기 때문에 삭제되는 것과 동일합니다. L[0:8] = []  # 출력 : [8, 9]

튜플과 동일하게 리스트끼리 더하기가 가능합니다. print(L + L) # [8, 9, 8, 9]
튜플과 동일하게 리스트에 곱하기도 가능합니다. 반복이죠 print(L * 3) # [8, 9, 8, 9, 8, 9]

 

 

list와 range함수를 이용손 쉽게 연속적인 수를 리스트로 만들 수 있습니다.

range함수따로 설정을 안 하면 0부터 시작해서 적힌 수만큼 +1씩하면서 만들어줍니다.

아주 쉽게 이해하는 방법은 0 ~ (10 - 1)만큼 출력된다고 생각하시면 됩니다.

L = list(range(10)) # 출력 : [0, 1 , 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9]

 

3개의 매개변수를 받는 경우 처음에는 시작, , 몇씩 커질지 입니다.

아주 쉽게 이해하는 법은 양수로 커질 때는 5 ~ 14(15 - 1) 까지가 범위라는 겁니다.

print(list(range(5, 15, 2))) # 출력 : [5, 7, 9, 11, 13]

 

음수로 작아질 때10 ~ (1 + 1) 까지가 범위가 됩니다.

print(list(range(10, 1, -1))) # 출력 : [10, 9, 8, 7, 6, 5, 4, 3, 2]

 

 

append(내용)의 경우는 붙히는 느낌입니다. 가장 뒤에 붙게 되죠 s.append(5) # 출력 : [1, 2, 3, 5]
insert(인덱스,내용)몇번째 인덱스내용을 append할지입니다. s.insert(3, 4) # 출력 : [1, 2, 3, 4 , 5]
index(내용) 내용몇번째 인덱스에 처음 나오는지를 알려줍니다. print(s.index(3)) # 출력 : 2
count(내용) 내용리스트안에 몇개 있는지 세어줍니다. print(s.count(2)) # 출력 : 1
remove(내용) 내용삭제합니다. 중복일시 맨 처음 것을 우선적으로 삭제합니다. s.remove(1) # 출력 : [2, 3, 4, 5] 
extend([내용])는 append와 다릅니다. append는 그대로 가져다 붙히지만 extend는 list안에다 넣습니다.

밑에 있는 거하고 비교하시면 이해가 쉬울 겁니다. s.extend([60, 70]) # 출력 : [2, 3, 4, 5, 60, 70]
s.append([5, 6]) # 출력 : [70 , 60, 5, 4, 3, 2, [5,6]]
내용 in 리스트 리스트안 내용있는지 True False를 출력합니다. print(4 in L) # 출력 : True
슬라이싱으로 지우는 법이 있지만 del로 인덱스로 접근해 삭제하는 방법도 있습니다. del L[0] # 출력 : [2, 3, 4]

 

 

리스트는 튜플과 다르게 수정이 가능합니다. a[2] = a[2] + 23 # 출력 : ['spam', 'eggs', 123, 1234]

 

 

리스트안에 리스트가 있을 때안에 값에 접근하는 방법은
일단 큰 리스트에서 인덱스따위로 접근하고 그 안에서 또 인덱스따위로 접근하면 됩니다.

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(a[1:3][1]) # 출력 : [7,8,9]

 

리스트안에 for문으로 값을 손쉽게 넣을수도 있습니다. 여기선 k*k 값이 들어가게 됩니다.

L = [k * k for k in range(10)] # 출력 : [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
리스트의 합을 구할 때는 sum(리스트)를 쓰면 됩니다. print(sum(L)) # 출력 : 285
if문도 또한 넣을 수 있습니다. L = [k * k for k in range(10) if k % 2 == 1] # 출력 : [1, 9, 25, 49, 81]
내용튜플형태로 만들 수도 있습니다.

L = [(i, j, i * j) for i in range(2, 100, 2) for j in range(3, 100, 3) if (i + j) % 7 == 0]

# 출력 : [(2, 12, 24), (2, 33, 66) ..

 

 

사전형을 list으로 형변환할 때는 키만 리스트가 됩니다. print(list({1: 2, 3: 4, 5: 6})) # 출력 : 1, 3, 5

 

 

https://github.com/SungJLee/My_Python_World.git

 

SungJLee/My_Python_World

Contribute to SungJLee/My_Python_World development by creating an account on GitHub.

github.com

 

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 If문  (0) 2021.07.18
파이썬 문자열  (0) 2021.07.17
파이썬 Tuple(튜플)  (0) 2021.07.17
파이썬 Input  (0) 2021.07.17
파이썬 출력해보기 Print  (0) 2021.07.16