IT

컬렉션 자료형 활용

rimicode 2022. 6. 11. 23:06
728x90
반응형
SMALL

컬렉션 자료형의 내장메소드

append(), extend(), insert()

a.insert(len(a), x) 는 a.append(x) 와 동등

my_list=[]
for i in range(100, 250):
    if (i%7==0) and (i%5!=0):
        my_list.append(str(i))

print(','.join(my_list))

# 112,119,126,133,147,154,161,168,182,189,196,203,217,224,231,238
my_list=[]
for i in range(100, 250):
    if (i%7==0) and (i%5!=0):
        my_list.insert(len(my_list), str(i))

print(','.join(my_list))

# 112,119,126,133,147,154,161,168,182,189,196,203,217,224,231,238
words = []
while True:
    char = input()
    if char:
        words.append(char.upper())
    else:
        # while 문을 통해 계속 입력할 수 있으며 입력을 끝내고 싶을 경우 공백 상태에서 엔터
        break;

for word in words:
    print(word)
values = []
for i in range(100, 250):
    char = str(i)

    if (int(char[0])%2==0) and (int(char[2])%2==0):
        values.append(char)

print(",".join(values))

# 200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248
list_1 = ['red', 'orange']
list_2 = ['yellow',1 ,7]
list_1.extend(list_2)
print('list1: {}, list2: {}'.format(list_1, list_2))

# list1: ['red', 'orange', 'yellow', 1, 7], list2: ['yellow', 1, 7]
# append, extend 차이점
colors1 = ['red', 'orange']
colors1.append(['yellow', 'green'])
print(colors1)

colors2 = ['red', 'orange']
colors2.extend(['yellow', 'green'])
print(colors2)

# ['red', 'orange', ['yellow', 'green']]
# ['red', 'orange', 'yellow', 'green']
colors3 = ['red', 'orange','yellow']
colors3.append('green')
print(colors3)

colors4 = ['red', 'orange','yellow']
colors4.extend('green')
print(colors4)

# ['red', 'orange', 'yellow', 'green']
# ['red', 'orange', 'yellow', 'g', 'r', 'e', 'e', 'n']

del, remove, pop

list = [20, 22, 6, 2, 8]
for i in list.copy():
    if not i % 2:
        list.remove(i)
print(list)

# []
my_list = [1, 2, 3, 4, 5]
my_list[0] = 33
print(my_list)

del my_list[0]
print(my_list)

# [33, 2, 3, 4, 5]
# [2, 3, 4, 5]
my_list = [1, 2, 3, 4, 5]
my_list[0] = 33
print(my_list)

my_list.pop()
print(my_list)

# [33, 2, 3, 4, 5]
# [33, 2, 3, 4]

count(), index()

my_list = ['abc', 'DEF', 'ghi', 'JKL']
print("Index for abc : ",  my_list.index( 'abc' ))
print("Index for JKL : ",  my_list.index( 'JKL' ))

# Index for abc :  0
# Index for JKL :  3
my_list = ['abc', 'DEF', 'ghi', 'JKL']
print("Index for abc : ",  my_list.count( 'abc' ))
print("Index for JKL : ",  my_list.count( 'JKL' ))

# Index for abc :  1
# Index for JKL :  1
import math
def bin_search(li, element):
    bottom = 0
    top = len(li)-1
    index = -1
    while top >= bottom and index == -1:
        mid = int(math.floor((top+bottom) / 2.0))
        if li[mid] == element:
            index = mid
        elif li[mid] > element:
            top = mid-1
        else:
            bottom = mid+1

    return index

li=[2,5,7,9,11,17,222]
print(bin_search(li,11))
print(bin_search(li,102))

# 4
# -1
li = [12,24,36,48,60,72]
for (i,x) in enumerate(li):
   if i not in (0,3,5):
     li = x
print(li)

# 60
def list_update(data):
    new_li=[]
    new_set = set()
    for item in data:
        if item not in new_set:
            new_set.add(item)
            new_li.append(item)

    return new_li

list_test=[1,1,10,50,50,100]
print(list_update(list_test))

# [1, 10, 50, 100]

sort & sorted

from operator import itemgetter # 특정 필드값을 꺼내주는 역할
l = []
while True:
    s = input()
    if not s:
        break
    l.append(tuple(s.split(",")))

print(sorted(l, key=itemgetter(0,1,2)))

# 입력 중단하고자 할 때는 엔터 입력

get()

dic = {}
s=input()
for s in s:
    dic[s] = dic.get(s,0)+1
print('\n'.join(['%s,%s' % (k, v) for k, v in dic.items()]))
728x90
반응형
LIST