python

[Python]리스트 기본, split, 슬라이싱, 부분집합(Powerset) 구하기

vhxpffltm 2019. 9. 10. 00:02

List 기본

1
2
3
4
5
6
7
8
9
10
11
12
13
list = [1,2,3,4]
 
print(list)
 
print(list)
 
 
[12311410]
[12341011]
 

 

index(번호) : 해당 인덱스의 값을 나탠다.

append(값) : 리스트에 해당 값을 뒤에서부터 추가한다.

insert(위치, 값) : 리스트에 해당 인덱스에 값을 추가한다. 

sort() : 리스트를 정렬한다. 단, 리스트내의 타입이 모두 같아야한다.

이외에도 extend 등이 있다. extend는 '+'로도 사용할 수 있다.

 

Split, Join

Split()은 정말 자주 사용된다. 문자열을 공백기준으로 분리시켜준다. ()안에 특정 문자를 넣어 분리할 수 있다.

Join은 리스트에서 문자열로 변환해준다. (문자열).join으로 사용한다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
string = 'one two three four'
 
string2 = "ONE,TWO,THREE,FOUR"
 
print(string2.split(','))
 
print(lsit)
 
print('|'.join(lsit))
 
 
['one''two''three''four']
['ONE''TWO''THREE''FOUR']
['one''two''three''four']
one|two|three|four
 

 

Slice

편리한 기능이다. 리스트의 i번째 원소부터 j번째 까지 잘라낼 수 있다.

list [시작 : 끝 : step] 의 모양이다. step은 증가량 이라고 생각하면 된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
list1 = [1,2,3,4,5,6,7,8,9,10]
list2 = list("my name is dog")
 
print(list2)
print(list1[3:])
print(list2[1:5])
print(list1[1: : 2])
print(list2[: : 3])
 
 
['m''y'' ''n''a''m''e'' ''i''s'' ''d''o''g']
[45678910]
['y'' ''n''a']
[246810]
['m''n''e''s''o']
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

파이썬 부분집합

파이썬 부분집합은 아래의 모듈을 추가하여 다음의 코드를 실행하면 얻을 수 있다.

리스트 자료형이기때문에 해당 함수 return값에 list()로 변환한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
from itertools import chain, combinations
 
def powerset(iterable):
    s = list(iterable)
    # print(s)
    return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))
 
print(list(powerset([1,2,3])))
 
 
[(), (1,), (2,), (3,), (12), (13), (23), (123)]