본문 바로가기

python

17. comprehension

728x90
반응형

 

83. 파이썬 Comprehension

 

python comprehension

 

  1. list comprehension

  2. set comprehension

  3. dictionary comprehension

 

 

 

1. list comprehension

 

문법:

      출력 표현식 for 요소 in 입력시퀀스 if 조건식

 

예제:

oldlist=[ 1, 2, 'A', False, 3 ]

newlist=[]

for i in oldlist:

    if type(i)==int:

        newlist.append(i*i)

print(newlist)

 

 

 

문제264.

위의 코드를 comprehension 코드로 변경하시오

[출력표현식 for 요소 in 입력시퀀스 [if 조건식] ]

 

oldlist=[ 1, 2, 'A', False, 3 ]

newlist=[i*i for i in oldlist if type(i)==int]

print(newlist)

 

 

 

문제265.

아래의 코드를 comprehension 코드로 변경하시오

import csv

file=open('d:\\csv\\emp2.csv','r')

emp_csv=csv.reader(file)

 

emp_sal=[]

 

for i in emp_csv:

    emp_sal.append(int(i[5]))

   

print(max(emp_sal))

 

 

 

import csv

file=open('d:\\csv\\emp2.csv','r')

emp_csv=csv.reader(file)

 

emp_sal=[]

 

emp_sal=[int(i[5]) for i in emp_csv ]   

   

print(max(emp_sal))

 

 

 

 

2. set comprehension

 

{출력 표현식 for 요소 in 입력시퀀스 if 조건식}

 

예제:

oldlist=[1, 1, 2, 3, 3, 4]

newlist={i*i for i in oldlist}

print(newlist)

 

{1, 1, 4, 9, 9, 16} 중복제거 되서 나온다

  

{16, 1, 4, 9}

 

 

 

문제266.

위의 코드를 comprehension 코드로 작성하시오

 

oldlist=[1, 1, 2, 3, 3, 4]

newlist=[]

for i in oldlist:

    newlist.append(i*i)

    a=set(newlist)

print(a)

 


 

 

3. Dictionary Comprehension

 

{key:value for 요소 in 입력시퀀스 if 조건식}

 

예제:

id_name={1:'김준구', 2:'장보겸', 3:'정지엽'}

a={val:key for key, val in id_name.items()}

print(a)

#key,val 갖고와서 순서를 val:key 바꿔서 출력해라 !

 


 

문제267.

위의 코드를 comprehension 코드로 변경하시오

 

참고

dic = { }

 

dic['파이썬'] = 'www.python.org'

            #↑            

   #         key            value

   

print(dic)

print(dic.keys() )

print(dic.values() )

print(dic.items() )

 


 

:

id_name={1:'김준구', 2:'장보겸', 3:'정지엽'}

a={}

for key,val in id_name.items():

    a[val]=key

print(a)

 

 

 

 

문제268.(오늘의 마지막 문제) 알고리즘 문제

삽입정렬 알고리즘을 파이썬으로 구현하시오!

a=[4,1,5,2,3]

print(insert_sort(a))

결과: [1,2,3,4,5]

 

 

def insert_sort(n):

    x=[]

    a=len(n)

    for i in range(a):

        for j in range(0,a-1):

            if n[j]>n[j+1]:

                n.insert(j+1+1,n[j])

                n.remove(n[j])

            else:

                continue

    return n   

a=[5,4,3,2,1,8,7,10]

print(insert_sort(a))


728x90
반응형