[파이썬] 이슈 정리

목차

foreach로 배열값을 꺼낼때
문자열 정렬(sort) 방법
문자열 분할 시 주의할점
파이썬 산술연산자
리스트 내포(List comprehension)
리스트 out of range를 피하는 방법
반복문 중간에 break 여부 판단하기
문자열 내의 문자를 index 기반으로 다른 문자로 치환하기
배열 내 중복이 없게 만들기

1. foreach로 배열값을 꺼낼때

  • 동작을 index 기반으로 하기때문에 copy를 해주거나 while로 돌리는게 편하다.
    1
    2
    3
    4
    5
    6
    7
    8
    lost = [1,3]
    reserve = [1,3,5]

    for res in reserve
    if res in lost:
    lost.remove(res)
    reserve.remove(res)
    # 1을 비교후, 3이 아닌 5로 점프한다.

해결방법

1
2
3
4
lost = [1,3]
reserve = [1,3,5]
_reserve = [r for r in reserve if r not in lost]
_lost = [l for l in lost if l not in reserve]

2. 문자열 정렬(sort) 방법

  • list.sort() 혹은 sorted(list) 가 있다.
  • sort는 리스트 자체를 정렬하고, sorted는 정렬된 리스트를 반환한다.

3. 문자열 분할 시 주의할점

  • list[1:3]은 list[2], list[3] 값을 반환한다.

4. 파이썬 산술연산자

Operator Description Example
% 나머지 b % a = 0
** 제곱 a ** c = 1000
// a // c = 3

5. 리스트 내포(List comprehension)

1
result = [num * 3 for num in a]

6. 리스트 out of range를 피하는 방법

조건문 if 앞에 len(list)==0 or [조건] 을 붙여 내용이 없을때에도 진행 가능하게 한다.

1
if len(Q)==0 or Q[-1][0]<-((p-100)//s):

7. 반복문 중간에 break 여부 판단하기

for else 문을 사용하면 반복중에 break 되었는지 아닌지 판단할 수 있다.

중간에 break 가 되었다면 else 문에 들어가지 않는다.

1
2
3
4
5
6
data = [1, 3, 6, 13, 3]
for i in data:
if i > 10:
break
else:
print('10 보다 큰 수는 없습니다.')

8. 문자열 내의 문자를 index 기반으로 다른 문자로 치환하기

파이썬은 문자열 내의 문자를 index 기반으로 치환하는 기능을 지원하지 않는다.

문자열을 list로 만들고 문자열을 치환한뒤에 다시 ‘’.join(name)으로 문자열로 변환한다.
list(name)
''.join(name)

9. 배열 내 중복이 없게 만들기

list에 11이라는 값을 3번 넣으면 [11,11,11]이 된다.

이때 [11] 만 남기고싶을때는 집합 자료형을 사용하면 된다.

1
s1 = set([1,2,3,4,4])
1
2
실행결과
{1,2,3,4}
공유하기