728x90
리스트 선언하기
colors = ['red', 'yellow', 'green', 'blue']
for color in colors:
print(color)
for i, color in enumerate(colors):
print(i, color)
더보기
red
yellow
green
blue
0 red
1 yellow
2 green
3 blue
컴프리헨션 문법으로 표현.
numbers = [1,2,3,4,5,6,7,8,9,10]
new_numbers = [n for n in numbers if n%2 == 0]
print(new_numbers)
더보기
[2, 4, 6, 8, 10]
추가, 삽입, 확장
추가할 때는 append() 를 사용합니다.
colors = ['red', 'yellow', 'green', 'blue']
new_colors = ['blue', 'black']
for c in new_colors:
if c not in colors:
colors.append(c)
print(colors)
더보기
['red', 'yellow', 'green', 'blue', 'black']
원하는 인덱스에 삽입할 때는 insert() 를 사용합니다.
index() 를 사용하면 해당 원소가 위치한 인덱스를 반환합니다.
colors = ['red', 'yellow', 'green', 'pink']
new_colors = ['blue', 'black']
for c in new_colors:
if c == 'blue' and 'green' in colors:
idx = colors.index('green')
colors.insert(idx+1, c)
print(colors)
더보기
['red', 'yellow', 'green', 'blue', 'pink']
원소가 없을 경우는 다음 에러를 발생.
>>> colors = ['red', 'yellow', 'green', 'pink']
>>> colors.index('red')
0
>>> colors.index('black')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'black' is not in list
확장할 때는 extend() 를 사용합니다.
>>> numbers = [1,2,3,4,5]
>>> numbers2 = [1,10,11,12]
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers.extend(numbers2)
>>> numbers
[1, 2, 3, 4, 5, 1, 10, 11, 12]
1이 중복으로 들어가 있습니다. count() 로 해당 원소의 개수를 구할 수 있습니다.
또한 set() 함수를 이용해서 중복을 제거할 수 있습니다.
>>> numbers
[1, 2, 3, 4, 5, 1, 10, 11, 12]
>>>
>>> numbers.count(1)
2
>>>
>>> new_numbers = list(set(numbers))
>>> new_numbers
[1, 2, 3, 4, 5, 10, 11, 12]
연산자를 이용하여 다음과 같이 사용할 수도 있습니다.
>>> nums = [1,2,3]
>>> nums2 = [10,11,12]
>>> nums + nums2
[1, 2, 3, 10, 11, 12]
>>>
>>> nums * 2
[1, 2, 3, 1, 2, 3]
>>>
>>> nums + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
제거, 추출, 초기화
제거할 때는 remove() 혹은 del 을 사용합니다.
colors = ['red', 'yellow', 'green', 'blue']
for color in colors:
if color == 'red':
colors.remove('red')
print(colors)
colors = ['red', 'yellow', 'green', 'blue']
for i, color in enumerate(colors):
if color == 'green':
del colors[i]
print(colors)
더보기
['red', 'yellow', 'blue']
['red', 'yellow', 'blue']
다음과 같이 반복문을 돌면서 해당 리스트의 원소를 삭제하고 싶은 경우가 있습니다.
#1, #2, #3 비교.
#1
colors = ['red', 'yellow', 'green', 'blue']
for color in colors:
if color == 'blue' or color == 'green':
colors.remove(color)
print(colors)
print('#'*50)
#2
colors = ['red', 'yellow', 'green', 'blue']
tmp = colors
for color in colors:
if color == 'blue' or color == 'green':
tmp.remove(color)
print(colors)
print(tmp)
print('#'*50)
#3
colors = ['red', 'yellow', 'green', 'blue']
tmp = colors.copy()
for color in colors:
if color == 'blue' or color == 'green':
tmp.remove(color)
print(colors)
print(tmp)
더보기
['red', 'yellow', 'blue']
##################################################
['red', 'yellow', 'blue']
['red', 'yellow', 'blue']
##################################################
['red', 'yellow', 'green', 'blue']
['red', 'yellow']
원소를 추출하고 싶은 경우에는 pop() 을 사용합니다.
import random
colors = ['red', 'yellow', 'green', 'blue']
for _ in range(2):
choice = random.choice(colors)
idx = colors.index(choice)
colors.pop(idx)
print(colors)
더보기
['red', 'yellow']
초기화는 clear() 를 사용합니다.
>>> arr = [1,2,3,4,5]
>>>
>>> arr
[1, 2, 3, 4, 5]
>>>
>>> arr.clear()
>>>
>>> arr
[]
'Language > Python' 카테고리의 다른 글
파이썬 딕셔너리 사용하기 dict (0) | 2020.07.09 |
---|---|
파이썬 리스트 섞기, 정렬, 역순 suffle sort reverse reversed (0) | 2020.07.09 |
파이썬 한글 시간 사용하기 datetime / locale.setlocale() (2) | 2020.07.06 |
파이썬 MongoDB 원격 접속 하기 - pymongo (0) | 2020.07.03 |
파이썬 OS 모듈 - 디렉터리 열기 os.startfile() (0) | 2020.07.03 |