파이썬은 변수 선언 키워드가 없다.
LIST : 복수개의 값을 담을 수 있는 데이터의 구조
리스트에서 원소를 삽입, 제거, 정렬할 수 있다.(mutable)
리스트 초기화
- [] # 빈리스트
- list() 함수로 생성
- str.split()함수로 생성
# 문자열은 immutable
a = 'hello, world.'
# a[0] = 'J' # TypeError: 'str' object does not support item assignment
print(a)
b = a.replace('h', 'J')
print(b)
|
['a','b']
['a',2] # 다른자료형을함께
[1,2,3] + [4,5,6]
결과는 [1,2,3,4,5,6]
a = [1, 2, 3]
a.append(4) # 리스트 마지막 원소 뒤에 추가한다.
print(a)
a.insert(1,7) # def insert(index,object)
- 리스트의 원하는 위치에 추가 가능
- 앞에 인덱스, 뒤에 아이템을 명시
a = [1, 2, 3]
a.append(4)
print(a) # [1, 2, 3, 4]
a.insert(1,7) # def insert(index, object)
print(a) # [1, 7, 2, 3, 4]
a[0] = 100
print(a) # [100, 7, 2, 3, 4]
# slicing
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a[4:7]) # [5, 6, 7] # 뒤 index 숫자는 포함하지 않음.
print(a[:7]) # [1, 2, 3, 4, 5, 6, 7]
print(a[3:]) # [4, 5, 6, 7, 8, 9]
print(a[1:7:2]) # [2, 4, 6] # 마지막 2 는 step 2
|
subway = ["유재석", "홍길동", "강호동"]
print(subway.index("강호동"))
print(subway.index("홍길동"))
print(subway.index("유재석"))
subway.append("강감찬") # 리스트 마지막 원소 뒤에 추가한다.
print(subway) # ['유재석', '홍길동', '강호동', '강감찬']
# 1번째에 키워넣기 insert(위치, 값)
subway.insert(1,"이순신")
print(subway) # ['유재석', '이순신', '홍길동', '강호동', '강감찬']
|
여러개의 요소를 추가하고 싶을 때는 extend 함수를 사용한다.
def extend(iterable)
a.extend([5,6,7])
a = [1,2,3,4,5]
b = [6,7,8,9,10]
a.append(b)
print(a) # [1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]
# 리스트 합치기
# 방법 1
a.extend(b)
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 방법 2
a += b
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
index()
- 찾고자 하는 값의 인텍스를 반환
in 키워드
- 리스트 내에 해당 값이 존재하는 지 확인
- value in [list]
- True, False 중 한가지로 반환
# list 는 mutable(가변), tuple은 immutable(불변)
# list 는 대괄호, tuple 은 소괄호 사용
x = [4, 2, 3, 1]
y = ["hello", "hi", 5, 7, 9]
x[3] = 10 # list는 값을 변경할 수 있지만, tuple은 값 변경 불가
print(x) # [4, 2, 3, 10]
print(x + y)
z = sum(x) # 리스트를 합한 값을 반환.
print(z) # 4 + 2 + 3 + 10 = 19
# index : 찾고자 하는 값의 인덱스를 반환
print(x.index(3)) # 2
for n in x:
print(n)
print("hello" in y) # hello 가 y 에 있어?
if "hello" in y:
print("hello 가 있어요.")
|
리스트 정렬
리스트 정렬(list.sort()) : 숫자는 오름차순, 문자열은 사전순
- 같은 자료형만 정렬 가능
- 리스트 내부 다른 자료형은 사용 불가
# 순서대로 정렬하기
num_list = [5,2,3,4,1]
num_list.sort()
print(num_list) # [1, 2, 3, 4, 5]
# 순서 역순 정렬하기
num_list.reverse()
print(num_list) # [5, 4, 3, 2, 1]
|
sort() : list 자체를 내부적으로 정렬
sorted() : list의 정렬된 복사본을 반환
# list 는 mutable(가변), tuple은 immutable(불변)
a = [9, 10, 7, 19, 1, 2, 20, 21, 8, 7]
# a.sort(reverse=True)
print(a) # [21, 20, 19, 10, 9, 8, 7, 7, 2, 1]
b = sorted(a)
print(a) # [9, 10, 7, 19, 1, 2, 20, 21, 8, 7]
print(b) # [1, 2, 7, 7, 8, 9, 10, 19, 20, 21]
|
리스트 요소 제거
- 값으로 항목 제거
1. remove() 함수
- 인덱스로 제거
1. del 연산자
2. pop() 함수 : 지우고자 하는 아이템을 반환 후, 삭제
# remove 함수
a = [1, 2, 3, 3, 4, 5]
a.remove(3)
print(a) # [1, 2, 3, 4, 5]
# 동일한 값이 있을 경우 앞에 있는 값을 제거한다.
a.remove(7) # ValueError: list.remove(x): x not in list
print(a)
|
list.pop(index)
- 인덱스 해당 요소를 제거한다.
- 인덱스를 지정하지 않으면 자동으로 -1을 호출하여 마지막 요소를 제거한다.
# pop 함수
b = ["유재석", "홍길동", "강호동"]
# list.pop(i) : 인덱스 i의 원소를 제거 후 그 원소를 반환
# 한 명씩 뒤에서 꺼내기
print(b.pop())
print(b.pop())
# 특정한 원소 꺼내기
print(b.pop(0))
a = [1, 2, 3, 4, 5]
a.pop() # 지정하지 않으면 마지막 원소 제거
print(a) # [1, 2, 3, 4]
a = [1, 2, 3, 4, 5]
d = a.pop(2)
print(a) # [1, 2, 4, 5]
print(d) # 3
|
# seq.count(d) : 시퀀스 내부의 자료 d의 개수를 반환
my_seq = [2,2,2,4,4,6,7]
print(my_seq.count(2)) # 결과 : 3
# 숫자 1, 2, 2, 3, 3, 3이 담긴 리스트 my_list를 하나 선언해 봅시다.
# my_list 안의 숫자 3의 개수를 변수 var1에 넣어 봅시다.
# 일부 원소를 제거하여 my_list가 [1, 2, 3]이 되도록 해봅시다.
my_list = [1, 2, 2, 3, 3, 3]
var1 = my_list.count(3)
print(var1) # 3
my_list.pop() # 마지막 원소 제거
my_list.pop() # 마지막 원소 제거
my_list.pop(2) # 3번째 원소 제거
print(my_list)
|
문자열 분리
str.split(c)
c를 기준으로 문자열을 쪼개서 리스트를 반환(괄호를 비울시 공백)
words = "python은 프로그래밍 배우기에 아주 좋은 언어입니다."
words_list = words.split()
print(words_list) # ['python은', '프로그래밍', '배우기에', '아주', '좋은', '언어입니다.']
time_str = "10:34:17"
time_str_list = time_str.split(':')
print(time_str_list) # ['10', '34', '17']
|
str.join(list)
str를 기준으로 리스트를 합쳐서 문자열을 반환(괄호를 비울시 공백)
a = ['a', 'b', 'c', 'd', '1', '2', '3']
print(a)
# 리스트를 문자열로 : join 이용
result1 = "".join(a)
print(result1) # 결과 : abcd123
friend = ['Pat', 'Mat']
print('&'.join(friend)) # Pat&Mat
|
'파이썬 > Python 기초' 카테고리의 다른 글
[파이썬기초] Tuple(튜플) (0) | 2021.01.01 |
---|---|
[파이썬 기초] dictionary (0) | 2021.01.01 |
[파이썬 기초] 반복문 for, while (0) | 2020.12.29 |
[파이썬 기초] 함수와 조건문 (0) | 2020.12.29 |
파이썬 기초 (0) | 2020.08.08 |