1. for문
- 1차원 list의 각 원소를 한 줄로 출력하기
v = list(range(10))
print(v)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
① 기존
for i in v:
print(i)
② 한 줄로
[i for i in v]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
물론 ①도 for i in v : print(i) 와 같이 코딩한다면 한 줄로 코딩 할 수 있으나, 코드가 더 길어질 경우 ②가 훨씬 깔끔하게 짤 수 있으며, 출력의 형태도 다르다.
①에서 출력되는 i의 type은 int형이며, ②에서 출력되는 type은 list이다.
※ 출력
~.join()으로 좀 더 예쁘게 출력할 수 있다.
print(" ".join(str(i) for i in v))
0 1 2 3 4 5 6 7 8 9
- 2차원 list의 각 원소를 한 줄로 출력하기
v = [list(range(10)),[10,11,12]]
print(v)
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12]]
① 기존
for i in v:
for j in i:
print(j)
② 한 줄로
[j for i in v for j in i]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
2. if문
- one condition
① 기존
if v<5 :
print(0)
② 한 줄로_방법1
v = 3
if v<5 : print(0)
'0'
② 한 줄로_방법2
v = 3
print(0 if v<5 else 1)
'0'
v = 8
print(0 if v<5 else 1)
'1'
- more than one condition
① 기존
if v<5 :
print(0)
elif v<10:
print(1)
else :
print(2)
② 한 줄로
v = 3
print(0 if v<5 else 1 if v<10 else 2)
'0'
v = 8
print(0 if v<5 else 1 if v<10 else 2)
'1'
v = 10
print(0 if v<5 else 1 if v<10 else 2)
'2'
3. for문 + if문
- if condition에 해당하는 값만 출력하기
v = list(range(10,20))
print(v)
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
① 기존
for i in v:
if i==12:
print(i)
12
② 한 줄로
[i for i in v if i==12]
[12]
- for문에 해당하는 각각의 원소가 if condition에 해당하는지, 아닌지
① 기존
for i in v:
if i==12:
print(i)
else :
print("No")
② 한 줄로
[i if i==12 else "No" for i in v ]
['No', 'No', 12, 'No', 'No', 'No', 'No', 'No', 'No', 'No']
'Python' 카테고리의 다른 글
[python] list, 문자열 에서 특정 element 개수 찾기 (list.count() in python) (0) | 2019.08.12 |
---|---|
[python] list에서 중복 제거하기 (get unique from list in python) (0) | 2019.08.12 |
[python] 문자열에서 특정 문자 위치 찾는 방법 (str.find() in python) (0) | 2019.08.12 |
[Python] 2차원 배열(리스트) 초기화 (2) | 2019.08.07 |
[Python] sys.stdin (0) | 2019.08.05 |