파이썬만의 특유문법

이상해씨·2023년 5월 24일
0

Pythonic code

  • 파이썬의 문법적 특징을 의미.
  • 짧고 이해가 용이
  • python 코드에 대한 이해도
  • 효율성

1. split & join

  • split으로 문자열을 자르고, join으로 문자열을 붙인다.

1-1. split 함수

  • list.split()
#일반적인 split
contents =" I am a human".split()


# unpacking
list=["c","python",""Java"]
#list = 'C, python, Java'
a,b,c=list.(",")

1-2. Join 함수

alpabet = ["a","b","c","d"]
"-".join(alpabet) # 'a-b-c-d'

2. List comprehension

  • list를 사용하여 다른 list를 생성하는 기법
    (다른 list를 포함하여 새로운 list를 만든다. )
  • 포괄적 리스트 의미
  • 파이썬에서 가장 많이 사용
  • for + apppend 속도 빠름

2-1. Filter

  • []안에서 if문을 의미
  • if문 조건에 따라, 코딩 실행
  • if - else(파이썬 삼항식) : [i+j if not (i==j) else i for i in list1 for j in list2 ]
result=[i for i in range(10) if i % 2==0]
# i를 10까지 반복하였을 때 만약 i를 2로 나눈 나머지가 0이면 i에 추가 
# 위 코드에서 if문은 filter를 의미


result=[i+j for i in list1 for j in list2]
# nested loop



2-2. 2D List

sentence = "The quick brown for over the lazy dog".split()

somwthing =[[w.upper(), w.lower(), len(w)] for w in sentence]
# list의 element의 대문자, 소문자, 길이를 2D list 로 변환
  • 2D vs 1D
#1D
res =[i+j for i in lis1 for j in lis2]

#위와 동일한 코드 
for j in list2:
	for i in list1:
    	i+j

#2D : 뒤에 for이 작동하고, 앞에 for 작동
res =[[i+j for i in lis1] for j in lis2]


# [[i+j for i in lis1 if j !='c'] for j in list2] 

3. enumerate & zip

3-1. enumerate(열거하다) : list의 element를 추출할 경우, 번호를 추가하여 추출

for i, j in enumerate ('abc'):
	print("{0} \{1}". format(i,j))

# 결과
# 0 A
# 1 B
# 2 C

st ="ABCD"
{i :j for i, j  in enumerate(st)}
# 결과 {0:'A', 1:'B', 2:'C', 3:'D'}

text = "The quick brown for over the lazy dog"
{i : j.lower() for i, j in enumerate(text.split())}


# text에서 중복 불허용 후 list에 저장 
list(set(text.split()))

3-2. Zip

  • zip: 두 list 값을 병렬로 추출
lst1 = ['a','b','c']
lst2 = ['d','e','f']
for i,j in zip(lst1,lst2): # 병렬로 추출
	print(i,j)

#a d
#b e
#c f
a,b,c = zip((1,2,3),(4,5,6),(7,8,9)) 
# 동일한 index의 값끼리 묶음
# (1,4,7)(2,5,8)(3,6,9)

[sum(x) for i in zip((1,2,3),(4,5,6),(7,8,9))]
# 동일한 index element를 합쳐서 list로 변환
# [12,15,18]
profile
공부에는 끝이 없다

0개의 댓글