Python

[Python] 5.배열(array) : tuple, dictionary, set

걍작 2022. 4. 6. 22:20

#정리 

#14tuple - 투플 배열

#tuple 배열은 ( )로 표시한다.
 - tp = (11,) : , 를 붙여야 투플타입이 된다. (11) >> int // (11,) >> tuple
#list를 캐스팅해서 쓰는 것이 가능하다.
 - lst = [0 for _ in range(10)]  >>  print(tuple(lst))
#값을 불러오는 것은 가능하지만, 값 변경은 불가하다.
 - print(tp[3:7])
 - tp[3:7] = () #값 변경 불가


#15dictionary  -  딕셔너리 배열

#dict배열은 { } 형태로 표시하며, 키 값을 가진다.

 - dic = {} #dict

 - dic = {"num":1} #dict

 - 키값 없이 데이터값만 주면 set이 된다.  #dic = {1} >> set

#tvo["num"] / tvo.get("num") 형태로 데이터값에 접근할 수 있다.
 - print(tvo["num"],tvo["name"],tvo["age"])
 - print(tvo.get("num"),tvo.get("name"),tvo.get("age"))
#키값을 통해 데이터값 수정 가능하다.
 - tvo["num"] = 33
#키-데이터값 을 추가할 수 있다.
 - tvo["tp"] = (11,22,33) #새로운 키값 tp 생성후 데이터 입력됨.
#특정 키값이 배열에 있는지 확인할 수 있다. - 데이터값이 아님에 주의
 - print("name" in tvo)
#키-데이터 값 동시 혹은 키값 /데이터값만 별도로 볼 수 있다.
 - print(tvo.items()) #키-데이터 모두 보기
 - print(tvo.keys()) #키
 - print(tvo.values()) #데이터 
#키값을 통해 데이터 값을 추출할 수 있다.
 - for key in tvo:  >>  print(tvo[key])
#clear()를 이용해 배열 키/데이터를 지울 수 있다.
 - tvo.clear()
#dict()를 이용하여 데이터 값을 키값에 변수 초기화 하듯 넣을 수도 있다.
 - tvo = dict(num=1,name="kim",age=33) #dict
#list 형태로 dict를 생성할 수 있다.
 - tvo = dict([('num'+str(i), i) for i in range(10)]) #num은 문자열이라 str(i)로 캐스팅 필요
#zip()을 사용하여 별도로 있는 키/데이터를 엮어서 넣어줄 수 있다.
 - keys = ["num","name","age"] // values = [1,"kim",33]
 - tvo = dict(list(zip(keys,values)))



#16set - set 배열 

#set 은 { }로 표시되며, 키값과 인덱스가 없고, 데이터의 중복을 허용하지 않는다(유니크-unique). 
 - s = {1,1,2,2,3,3,3,3}

 - 중복 값은 자동으로 제거됨.
#다른 배열에서 캐스팅 시 중복 값 자동 제거
 - tp = (1,2,3,1,2,3) >> {1,2,3}
 - lst = [1,2,3,1,2,3] >> {1,2,3}
#add()로 값 추가 가능
 - s.add(11)
 - 중복 입력 안됨
#remove()로 값 제거 가능
 - s.remove(22)
#합집합 - union
 - s = s | {1,2,3,44} 
 - print(s1.union(s2))
#교집합 - intersection
 - s = s & {1,2,3} 

 - print(s1.intersection(s2))
#차집합 - difference
 - s = s - {3} 
 - print(s1.difference(s2))

 

 

#14tuple - 투플 배열

#tuple 배열은 ( )로 표시한다.
 - tp = (11,) : , 를 붙여야 투플타입이 된다. (11) >> int // (11,) >> tuple
#list를 캐스팅해서 쓰는 것이 가능하다.
 - lst = [0 for _ in range(10)]  >>  print(tuple(lst))
#값을 불러오는 것은 가능하지만, 값 변경은 불가하다.
 - print(tp[3:7])
 - tp[3:7] = () #값 변경 불가

 

--예문 코드 보기--

더보기
print("---------------")

tp = ()
tp = (11,) #,를 붙여야 투플타입이 된다. (11) >> int // (11,) >> tuple
print(type(tp))
tp = (11,22,33) 
#tp = (0 for i in range(10)) #generator object type으로 바뀐다.
#tp = range(10) #range type으로 바뀐다.
print(tp)

print("---------------")
#list를 캐스팅해서 쓰는 것이 가능하다.
lst = [0 for _ in range(10)]
lst = [i for i in range(10)]
print(tuple(lst))

print("---------------")
tp = tuple(lst)
print(tp[3])
print(tp[3:7])
#tp[3:7] = () #값 변경 불가
#del tp[3]

 

 

 

 


#15dictionary  -  딕셔너리 배열

#dict배열은 { } 형태로 표시하며, 키 값을 가진다.

 - dic = {} #dict

 - dic = {"num":1} #dict

 - 키값 없이 데이터값만 주면 set이 된다.  #dic = {1} >> set

#tvo["num"] / tvo.get("num") 형태로 데이터값에 접근할 수 있다.
 - print(tvo["num"],tvo["name"],tvo["age"])
 - print(tvo.get("num"),tvo.get("name"),tvo.get("age"))
#키값을 통해 데이터값 수정 가능하다.
 - tvo["num"] = 33
#키-데이터값 을 추가할 수 있다.
 - tvo["tp"] = (11,22,33) #새로운 키값 tp 생성후 데이터 입력됨.
#특정 키값이 배열에 있는지 확인할 수 있다. - 데이터값이 아님에 주의
 - print("name" in tvo)
#키-데이터 값 동시 혹은 키값 /데이터값만 별도로 볼 수 있다.
 - print(tvo.items()) #키-데이터 모두 보기
 - print(tvo.keys()) #키
 - print(tvo.values()) #데이터 
#키값을 통해 데이터 값을 추출할 수 있다.
 - for key in tvo:  >>  print(tvo[key])
#clear()를 이용해 배열 키/데이터를 지울 수 있다.
 - tvo.clear()
#dict()를 이용하여 데이터 값을 키값에 변수 초기화 하듯 넣을 수도 있다.
 - tvo = dict(num=1,name="kim",age=33) #dict
#list 형태로 dict를 생성할 수 있다.
 - tvo = dict([('num'+str(i), i) for i in range(10)]) #num은 문자열이라 str(i)로 캐스팅 필요
#zip()을 사용하여 별도로 있는 키/데이터를 엮어서 넣어줄 수 있다.
 - keys = ["num","name","age"] // values = [1,"kim",33]
 - tvo = dict(list(zip(keys,values)))

 

--예문 코드 보기--

더보기
print("Hello python")
print("---------------")

dic = {1} #set : 키값 없이 데이터값만 주면 set이 된다.
print(type(dic))
dic = {} #dict
print(type(dic))

dic = {"num":1} #dict
print(type(dic))


print("---------------")
tvo = {"num":1,"name":"kim","age":33} #dict - 문자열은 ' '로 표시된다.
print(tvo)
print(tvo["num"],tvo["name"],tvo["age"])
print(tvo.get("num"),tvo.get("name"),tvo.get("age"))


print("---------------")
tvo = {0:1,1:"kim",2:33} #dict
print(tvo)
print(tvo.get(0),tvo.get(1),tvo.get(2))

print("---------------")
tvo = {"num":1,"name":"kim","age":33} #dict
print(tvo)
#키값을 통해 데이터값 수정 가능하다.
tvo["num"] = 33
tvo["name"] = "lee"
tvo["age"] = 55
#키-데이터값 을 추가할 수 있다.
tvo["tp"] = (11,22,33)
tvo["lst"] = [11,22,33]
print(tvo)


print("---------------")
print("kim" in "kim lee han")
#특정 키값이 배열에 있는지 확인할 수 있다. - 데이터값이 아님에 주의
print("name" in tvo)
print("age" in tvo)


print("------key & value---------")
#키-데이터 값 동시 혹은 키값 /데이터값만 별도로 볼 수 있다.
print(tvo.items()) #키-데이터 
print(tvo.keys()) #키
print(tvo.values()) #데이터 


print("---------------")
#키값을 통해 데이터 값을 추출할 수 있다.
for key in tvo:
	print(tvo[key])

print("---------------")
#clear()를 이용해 배열 키/데이터를 지울 수 있다.
tvo.clear()
print(tvo)

print("---------------")
#dict()를 이용하여 데이터 값을 키값에 변수 초기화 하듯 넣을 수도 있다.
tvo = dict(num=1,name="kim",age=33) #dict
print(tvo)

print("---------------")
#list 형태로 dict를 생성할 수 있다.
#num은 문자열이라 str(i)로 캐스팅 필요
tvo = dict([('num'+str(i), i) for i in range(10)])
print(tvo)

print("---------------")
#zip()을 사용하여 별도로 있는 키/데이터를 엮어서 넣어줄 수 있다.
keys = ["num","name","age"]
values = [1,"kim",33]
tvo = dict(list(zip(keys,values)))
print(tvo)

 


#16set - set 배열 

#set 은 { }로 표시되며, 키값과 인덱스가 없고, 데이터의 중복을 허용하지 않는다(유니크-unique). 
 - s = {1,1,2,2,3,3,3,3}

 - 중복 값은 자동으로 제거됨.
#다른 배열에서 캐스팅 시 중복 값 자동 제거
 - tp = (1,2,3,1,2,3) >> {1,2,3}
 - lst = [1,2,3,1,2,3] >> {1,2,3}
#add()로 값 추가 가능
 - s.add(11)
 - 중복 입력 안됨
#remove()로 값 제거 가능
 - s.remove(22)
#합집합 - union
 - s = s | {1,2,3,44} 
 - print(s1.union(s2))
#교집합 - intersection
 - s = s & {1,2,3} 

 - print(s1.intersection(s2))
#차집합 - difference
 - s = s - {3} 
 - print(s1.difference(s2))

 

--예문 코드 보기--

더보기
#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("---------------")
#set : 중복 허용 없음(유니크), 인덱스 없음
s = {1}
print(s)
print(type(s))

s = {1,1,2,2,3,3,3,3}
print(s)

print("---------------")
#중복 값은 자동으로 제거됨.
#add()로 값 추가 가능
s.add(11)
s.add(11)#중복 입력 안됨
s.add(22)
print(s)

#캐스팅 시 중복 값 자동 제거
tp = (1,2,3,1,2,3)
print(set(tp))
lst = [1,2,3,1,2,3]
print(set(lst))

print("---------------")
#remove()로 값 제거 가능
s.remove(22)
print(s)

print("---------------")
s = s | {1,2,3,44} #합집합 - union
print(s)

s = s & {1,2,3} #교집합 - intersection
print(s)

s = s - {3} #차집합 - difference
print(s)

print("---------------")
s1 = {11,22,33}
s2 = {22,33,44}
print("---------------")
print(s1.union(s2))
print(s1.intersection(s2))
print(s1.difference(s2))