[파이썬] 배열, 문자열, 리스트 메소드

에구마·2022년 9월 28일
0

Python

목록 보기
8/11

count() : 특정 요소 카운트

문자열

string.count(char or substring[, start, end])

배열에서 해당값이 몇번이나 존재하는지 반환
start: 검색 시작 인덱스
end: 검색 종료 인덱스

'apple'.count('p') 
>> 2

리스트

[1,2,3,1].count(1)
> 2

Counter() : 요소 각각 카운트

from collections import Counter

카운트 한 요소와 카운트 값을 object 형으로 받는다

Counter(['hi','hey','hello','hi','hey'])
>> Counter({'hi':2, 'hey':2, 'hello':1})
-
Counter('hello')
>> Counter({'h':1, 'e':2, 'l':2, 'o':1})
-
사전 처럼 접근
counter = Counter('hello')
counter['o']
>> 1

가장 많이 등장한 값 객체형태로

Counter('hihellohi').most_common(1:상위부터 리턴할 갯수)
>>[('h',3)]

문자열 <-> 리스트 <-> 숫자

문자열을 리스트로 list(str)

list('stringArr')
> ['s', 't', 'r', 'i', 'n', 'g', 'A', 'r', 'r']

숫자를 리스트로

list(str(1234))
> ['1', '2', '3', '4']

숫자를 숫자리스트로

list(map(int,str(1234)))
> [1,2,3,4]

리스트를 문자열로 ''.join(list)

string.join(iterable-list)

합칠 리스트 값들 사이에 넣을 문자열.join(합칠리스트)

list= ['a','b','and','c']
''.join(list)
>> abandc

str.split() : 문자열을 리스트로 쪼개기

string.split(separator, maxsplit)

쪼갤문자열.split(기준)
기준 구분자(separator)를 주지 않으면 디폴트는 공백

string = 'hi hello'
splitted= string.split()
>> ['hi', 'hello']

리스트 원소 삽입 append, +

list.append(값)

값은 하나씩! 값 형태 그대로 리스트 안으로 들어감

list = [1,2,3]
list.append(4)
>> [1,2,3,4]

ar = [[1,2], [2,3]]
ar.append([3,4])
>> [[1, 2], [2, 3], [3, 4]]

list += list

추가되는 리스트 내부 값들만 들어감.

list = [1,2,3]
list+= [4]
>> [1,2,3,4]

ar = [[1,2], [2,3]]
ar += [3,4]
[[1, 2], [2, 3], [3, 4], 3, 4] ## 리스트 벗겨져서 들어감!!

이차원배열을 유지하고 싶으면 추가도 이차원배열

ar += [[3,4]]
> [[1, 2], [2, 3], [3, 4], [3, 4]]

리스트 원소 제거 remove, pop

O(n)

list.remove(값) : 값으로 해당 원소 제거

list = [1,2,3]
list.remove(2)
>> [1,3]

같은 값이 여러개여도 처음 하나만 지워짐!

list.pop(인덱스) : 인덱스로 해당 원소 제거

list = [1,2,3]
list.remove(0)
>> [2,3]

리스트 뒤집기 list.reverse()

list = ['a','b','c']
list.reverse()
>> ['c','b','a']

+ 문자열은 뒤집을 수 없다 !! 리스트로 만들고 뒤집는다

2차원 리스트 행열 전환

li = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
li = list(map(list, zip(*li)))
> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
profile
코딩하는 고구마 🍠 Life begins at the end of your comfort zone

0개의 댓글