class Server:
def __init__(self):
self.orderList = []
self.orderNumList = []
# problem 1
def makeOrder(self, orderNum, orderProduct):
self.orderNum = orderNum
self.orderProduct = orderProduct
if self.orderNum not in self.orderNumList:
order = [[self.orderNum, self.orderProduct]]
self.orderList.extend(order)
self.orderNumList.append(self.orderNum)
return order[0]
elif self.orderNum in self.orderNumList:
return -1
# problem 2
def getWaitingTime(self, orderNum, makingTime):
self.makingTime = makingTime
totalTime = 0
if orderNum in self.orderNumList:
indexNum = self.orderNumList.index(orderNum)
for i in range(0, indexNum+1):
productAmount = len(self.orderList[i][1])
totalTime = totalTime + (productAmount * makingTime)
return totalTime
else :
return -1
# problem 3
def serveOrder(self):
k = self.orderList.pop(0)
self.orderNumList.pop(0)
return k[0], k[1]
# problem 4
def getOrderNumber(self):
return len(self.orderNumList)
# problem 5
def cancelOrder(self, orderNum):
if orderNum in self.orderNumList:
indexNum = self.orderNumList.index(orderNum)
k = self.orderList.pop(indexNum)
self.orderNumList.pop(indexNum)
return k
else:
return -1, '-1'
# problem 6
def makeOrderVIP (self, orderNum):
self.vipList = []
self.vipListNum = []
if orderNum not in self.orderNumList:
lis = [[orderNum, []]]
self.orderList = lis + self.orderList
numLis = [orderNum]
self.orderNumList = numLis + self.orderNumList
return self.orderNumList
else:
return -1, '-1'
# problem 7
def giveService(self, orderNum, service):
self.service = service
if orderNum in self.orderNumList:
indx = self.orderNumList.index(orderNum)
k = self.orderList[indx]
k.append(self.service)
k = [k]
self.orderList = self.orderList[:indx] + k + self.orderList[indx+1:]
self.orderNumList = self.orderNumList[:indx] + [orderNum] + self.orderNumList[indx+1:]
first = k[0][0]
second = k[0][1]
return first, second
else:
return -1, '-1'
# problem 8
def getOrderItems (self):
Num = 0
for i in range(len(self.orderList)):
k = len(self.orderList[i][1])
Num = Num + k
return Num
list의 추가
1. + : 2개의 [] 안의 값을 합친 1개의 [] 반환
2. append: 값을 반환하지 않고, 원본 데이터에 입력값을 추가해줌
3. extend: 리스트를 입력값으로 받아, 입력값으로 받은 리스트의 요소를 모두 추가해줌, list 자체를 추가하고 싶다면, (추가할 때 []를 살리고 싶으면) [[]]로 이중으로 배열 처리해주어야 함!
비어있는 리스트를 생성한 후에, 값을 추가하기
a = list()
리스트의 함수
리스트 요소 꺼내기(pop)
a = list.pop(n)
n을 입력하지 않으면 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.
리스트 요소 삭제하기 (del)
del a[2:]
리스트 요소 삭제하기 (remove)
리스트에서 처음으로 등장하는 입력값을 삭제
a = [1,2,3,4,1,2]
a.remove(1)
print(a)
# >>>[2,3,4,1,2]
python - index
index(값) : 특정 값의 인덱스의 위치를 확인해 주는 함수tu = ("red", "blue", "green","pink","red") k = tu.index("red") print(k) #0
list 원소 삭제
del 키워드를 통한 삭제>> a = [1, 2, 3, 4, 5, 6, 7] >> del a[1] >> a # [1, 3, 4, 5, 6, 7]
- list의 remove메소드에 의한 삭제
list.remove(찾을아이템)
찾을 아이템이 없으면 ValueError 발생>> a = [1, 2, 3, 4, 5, 6, 7] >> a.remove(3) >> a [1, 2, 4, 5, 6, 7] >> a.remove(9) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list
- del키워드와 리스트의 index메소드와 혼합하여 사용하면 remove효과가 난다.
>> a = [1, 2, 3, 4, 5, 6, 7] >> del a[a.index(3)] >> a [1, 2, 4, 5, 6, 7]
리스트 안의 값을 변경하는 것도 가능!
list4 = ["song", ["chang", "hwan"], ["hi","Hello"]] list4[0] = "Kim" list4[1][1] = "su" print(list4) # >>> ['Kim'['chang','su',['hi','hello']]]
내가 생각한 대로 결과가 나오지 않을 수도 있다.
#1
order = Server()
order.makeOrder('1',['d','e','f'])
order.makeOrder('12',['t','y','u'])
order.makeOrder('123',['h','j','k'])
order.makeOrder('1234',['a','b','c'])
order.makeOrder('12345',['m','n','b'])
order.makeOrder('123456',['u','o','p'])
print("#", order.makeOrder('1234567',['w','a','z']))
print("#1", order.orderNumList)
print("#1",order.orderList)
print()
#2
print("#", order.getWaitingTime('12',2))
print("#", order.getWaitingTime('123',4))
print("#2", order.orderNumList)
print("#2",order.orderList)
print()
#3
print("#", order.serveOrder())
print("#3", order.orderNumList)
print("#3",order.orderList)
print()
#4
print("#", order.getOrderNumber())
print("#4", order.orderNumList)
print("#4",order.orderList)
print()
#5
print("#", order.cancelOrder('12'))
print("#5", order.orderNumList)
print("#5",order.orderList)
print()
#6
print("#", order.makeOrderVIP('123456789'))
print("#6", order.orderNumList)
print("#6",order.orderList)
print()
#7
print("#", order.giveService('1234','good'))
print("#7", order.orderNumList)
print("#7", order.orderList)
print()
#8
print("#8",order.getOrderItems())
# result
# ['1234567', ['w', 'a', 'z']]
#1 ['1', '12', '123', '1234', '12345', '123456', '1234567']
#1 [['1', ['d', 'e', 'f']], ['12', ['t', 'y', 'u']], ['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c']], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
# 12
# 36
#2 ['1', '12', '123', '1234', '12345', '123456', '1234567']
#2 [['1', ['d', 'e', 'f']], ['12', ['t', 'y', 'u']], ['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c']], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
# ('1', ['d', 'e', 'f'])
#3 ['12', '123', '1234', '12345', '123456', '1234567']
#3 [['12', ['t', 'y', 'u']], ['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c']], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
# 6
#4 ['12', '123', '1234', '12345', '123456', '1234567']
#4 [['12', ['t', 'y', 'u']], ['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c']], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
# ['12', ['t', 'y', 'u']]
#5 ['123', '1234', '12345', '123456', '1234567']
#5 [['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c']], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
# ['123456789', '123', '1234', '12345', '123456', '1234567']
#6 ['123456789', '123', '1234', '12345', '123456', '1234567']
#6 [['123456789', []], ['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c']], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
# ('1234', ['a', 'b', 'c'])
#7 ['123456789', '123', '1234', '12345', '123456', '1234567']
#7 [['123456789', []], ['123', ['h', 'j', 'k']], ['1234', ['a', 'b', 'c'], 'good'], ['12345', ['m', 'n', 'b']], ['123456', ['u', 'o', 'p']], ['1234567', ['w', 'a', 'z']]]
#8 15
#1
def function1(a,b):
return a+b
#2
def function2 (a,b):
al = len(a)
bl = len(b)
return al + bl
#3
def fumction3(a,b):
b = int(b)
return a*b
#4
def function4(a,b):
if b in a:
return True
else:
return False
#5
def function5(a,b):
a = int(a)
b = int(b)
k = 0
for i in range(a,b+1):
k += i
return k
#6
def function6(a, b):
if b in a:
return True
else:
return False
#7
def function7(a):
k = 0
for i in a:
k += a
return k
#8
def function8(a):
k = 0
for i in a:
if i % 2 == 0:
k+=a
return k
#9
def function9(a,b):
if b in a:
a.remove(b)
return a
else:
return False
range() 함수를 이용해서 range 객체를 생성합니다. range(1, 101)와 같이 코딩해주면 1부터 101에서 하나 뺀 100까지의 연속적인 숫자가 들어갑니다. 그 다음에 list() 함수 안에 range 객체를 넣어줌으로 리스트로 변환합니다. 그러면 1부터 100까지의 원소가 담긴 리스트가 완성됩니다. 다음과 같은 한 줄의 코드로 나타낼 수 있습니다.
list(range(a, b))