본문 바로가기
Language/Python

[Python] list / tuple / dict / set 이용하기

by 별토끼. 2017. 8. 10.
반응형

[Python] list / tuple / dict / set 이용하기



  • list 이용하기
    1. 순서가 있다
    2. 여러 type 의 데이터를 저장할 수 있다.
    3. 값 변경 가능


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
a=[1,2,3]
b=[10, True, "abcd"]
c=[102030]
d=a
 
# 같은 참조값 확인!
print "a id:", id(a)
print "d id:", id(d)
 
print "a[0] :", a[0]
print "a[1] :", a[1]
print "a[2] :", a[2]
 
family=[u"엄마",u"아빠",u"나"]
 
print u"가족 구성원 목록:", family[0], family[1], family[2]
print u"가족 구성원 수 :"len(family)
 
# list type 에 데이터 추가
family.append(u"남동생")
family.append(u"여동생")
 
print "추가된 구성원 :", family[3], family[4]
print "가족 구성원 수:"len(family)
 
# 값에 의한 삭제
family.remove(u"남동생")
 
# 인덱스에 의한 삭제
del family[0]
 
print u"삭제후 구성원 목록:", family[0], family[1], family[2]
print u"삭제후 구성원 수:"len(family)
 
# 빈 list type 객체 만들고
numbers=[]
 
# 데이터 추가
numbers.append(10)
numbers.append(40)
numbers.append(50)
numbers.append(20)
numbers.append(30)
 
# list 의 구조 확인
print numbers
 
# 오름 차순 정렬
numbers.sort()
print u"오름 차순 정렬 후 numbers:", numbers
 
# 내림 차순 정렬
numbers.sort(reverse=True) # keyword argument 전달
print u"내림차순 정렬 후 numbers:", numbers
 
# slice 연습
numbers2=[1,2,3,4,5,6,7,8,9,10]
 
print numbers2[0:2]
print numbers2
print numbers2[3:5]
print numbers2[-5:-1]
 
print range(10)
print range(20)
 
= range(5)
print u"a type:", type(a)
 
# list 에 들어 있는 값을 하나씩 순서대로 참조해서
for i in range(10):
    # 출력해보기
    print i
 
print "---------------"
 
friends=["cat","dog","elephant","snake","frog"]
 
for item in friends:
    print item
cs



  • tuple 이용하기
    1. list type 과 유사
    2. 읽기 전용 (저장된 데이터 수정, 삭제 불가)
    3. list 에 비해 속도가 빠르다
    4. 1개만 들어가는 경우 주의 : ex> nums1_1= (10,)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
tuple1=("one","two","three")
 
print tuple1[0# list type 과 참조하는 방식이 같다
 
= tuple1[2# 2번방 참조해서 다른 변수에 담기
 
print a
 
# 수정 불가 (read only)
# tuple[1] = "test"
 
# tuple type 을 list type 으로 변환해서 새로운 객체 얻어내기
list1 = list(tuple1) # list class 의 생성자 호출
 
print "list1 :", list1
 
# list type 을 tuple type 으로 변환해서 새로운 객체 얻어내기
tuple2 = tuple(list1)
 
print "tuple2 :", tuple2
 
# tuple1과 tuple2 의 참조값 비교
result = tuple1==tuple2 # 내용비교
result2 = tuple1 is tuple2 # 정확한 참조값 비교
print "tuple1 == tuple2 :", result
print "tuple1 is tuple2 :", result2
 
num1 = 10
num2 = 10
 
print "num1 == num2: ",num1==num2
print "num1 is num2: ",num1 is num2
 
# 방 1개 짜리 tuple 객체 만들때는 주의!
 
nums = [10]
 
nums1 = (10# int type
 
# 일반 괄호와 구분하기 위해서 우측에 , 를 하나 붙여준다.
nums1_1= (10,) # tuple type
 
nums2 = (10,20)
 
print type(nums1)
print type(nums1_1)
print type(nums2)
 
nums3 = 102030
 
print "nums3 :",nums3
print type(nums3)
 
print "-------------------"
print "one","two","three"
print ("one""two""three")
 
# 3 개의 변수에 동시에 값 대입하기
num1, num2, num3 = 123
print num1, num2, num3
 
myFriend = ("gura","monkey","dog")
# tuple 에 있는 값을 각각의 변수에 대입하기
a, b, c = myFriend
 
print a, b, c
 
first = "boy"
second = "girl"
 
print first
print second
 
# 두 변수의 내용을 서로 바꾸려면?
'''
tmp = first
first = second
second = tmp
'''
second, first = first, second
 
print first
print second
cs



  • dict type 이용하기
    1. key : value 형태로 데이터를 저장한다.
    2. 순서가 없는 데이터이다.
    3. key 값을 이용해서 저장된 값을 참조한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 한 명의 회원정보를 dict type 에 담기
dict1= {"num":1"name":u"김구라""isMan":True}
 
# dict type 에 저장된 데이터 참조
print dict1["num"]
print dict1["name"]
print dict1["isMan"]
 
# 수정
dict1["num"]=999 # 대입연산자를 이용해서 특정방의 데이터 수정
 
# 특정방 삭제
del dict1["isMan"]
 
# 모든방 삭제
dict1.clear()
print u"모든 방 삭제 후 dict1:", dict1
 
dict2={"car":u"자동차""house":u"집","phone":u"전화가"}
 
# dict type 의 key
print dict2.keys()
 
# dict type 의 value 값만 list type으로 얻어온다.
print dict2.values()
 
# for 문에 응용
for key in dict2.keys():
    tmp = dict2[key]
    print key, tmp
cs


  • set type 이용하기
    1. 순서가 없다
    2. 중복을 허용하지 않는다.
    3. 집합(묶음) 이라고 생각하면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# set type 데이터 만들기
set1={10,20,30,40,50}
 
print set1
print "len(set1):"len(set1)
 
# set type 에 데이터 추가하기
set1.add(60)
set1.add(70)
set1.add(70)
set1.add(70)
set1.add(10)
 
print "set1:", set1
 
# 새로운 set type 데이터를 만들고
set2={60708090100}
 
# 두 set 간의 합집합
unionResult = set1.union(set2)
 
print "set1 union set2 : ",unionResult
 
# 두 set 간의 교집합
intersectionResult = set1.intersection(set2)
print "set1 intersection set2 :", intersectionResult
 
# 두 set 간의 차집합
minusResult = set1 - set2
print "set1 - set2 :", minusResult
 
set3={"kim","lee"}
list1 = ["park","cho","lee"]
tuple1 = ("one""two")
 
# set 에 list type 이나 tuple type 에 있는 원소 병합 시키기
set3.update(list1)
print "list1 병합후 set3:", set3
 
set3.update(tuple1)
print "tuple1 병합후 set3:", set3
 
#값 삭제 
set3.discard("park")
print "set3 에서 park discard 이후:",set3
#삭제할 값이 존재하지 않으면...
set3.discard("김구라"# 무시한다. 
 
#값 삭제 remove() 이용 
#삭제할 값이 존재하지 않으면 ...
#set3.remove("해골") # 예외 발생!
 
#값 모두 삭제
set3.clear()
print "set3 clear() 이후 : ",set3
 
# 반복문 돌면서 set1 에 저장된 모든 내용 불러와서 작업
for item in set1:
    print item
    
# list 에 저장된 데이터에서 중복을 제거 하고 싶다라면 ...    
list3 = [10,20,30,10,10,30,40,50,50]
# set 를 이용한다.
set4 = set(list3)
print "set4 : ",set4
# 중복 제거후 다시 list type 으로 얻어낸다.
list4 = list(set4)
print "list4 : ",list4
cs


반응형

댓글