python tips(2)

3096 단어 pythonpython2.x
join 함수 사용
일반적인 문자열 조합 작업 은 모두 사용join을 권장 합 니 다.문자열 작업 에 자주 사용 되 는 것 은join,split,replace,그리고partition목록 으로 해석 할 수 있 는 형식 도 있 습 니 다.
m = map(str, range(9))
','.join(x for x in m if x != '3')

#    
','.join([x for x in m if x != '3'])

목록 에서 같은 요 소 를 여러 개 삭제 합 니 다.join을 사용 하면 안 됩 니 다.왼쪽 에서 오른쪽으로 찾 은 첫 번 째 요소 만 삭제 할 수 있 습 니 다.뒤의 요 소 는 삭제 하지 않 습 니 다.자신 이 생각 하 는 두 가지 좋 은 방법 은 다음 과 같 습 니 다.
m = ['a', 'b', 'c', 'a']
m = filter(lambda x: x !='a', m)

혹은
m[:] = (x for x in m if x != 'a')

n 비트 문자열 무 작위 생 성
import random
import string

rand_str = "".join([random.choice(string.letters+string.digits) for _ in xrange(n)])

질문
함수 매개 변수
함수 기본 매개 변 수 는 정의 할 때 매개 변수 가 한 번 만 값 을 구 했 습 니 다.함수 의 여러 호출 은 같은 가 변 매개 변 수 를 사용 합 니 다.
def test(data, x=[]):
    x.append(data)
    return x
print test(3)
# [3]
print test(4)
# [3, 4]

질문
함수 매개 변수 문제 와 마찬가지 로 여러 키 값 에 대응 하 는list.remove은 같은 목록 을 호출 합 니 다.value로 설정 한 것 도 자 연 스 러 운 결과 입 니 다.
>>> a = dict.fromkeys('bc', [])
>>> a['b'].append(6)
>>> a
{'b': [6], 'c': [6]}

다 중 변수 선언
일반적으로 여러 개의 빈{}과 빈list을 설명 하 는 수요 가 있 을 수 있 습 니 다.여러 변수 가 같은dict또는[]를 공유 하 는 잘못된 방법 입 니 다.
a = b = []
c = d = {}

올 바른 방식
a, b = [], []
# for a lot of var
c, d, e, f = [{} for _ in xrange(4)]

기타{},int,str등 은 이 문제 가 없 으 면 직접 작성 할 수 있 습 니 다.
a = b = True
bool한 번 에 여러 개 삭제 가능
>>> a = range(3)
>>> del a[2], a[0]
>>> a
[1]

절편 조작
-1 로 리스트 를 반전 시 킬 수 있어 요.
>>> a = range(7)
>>> a[::-1]
[6, 5, 4, 3, 2, 1, 0]
>>> a[::2]
[0, 2, 4, 6]

절편 으로 특정한 서열 을 삭제 하 는 것 은del와 같다.
>>> a = [1, 2, 3, 4, 5, 6, 7]
>>> a[1:4] = []
>>> a
[1, 5, 6, 7]

짝수 인덱스 제거
>>> a = [0, 1, 2, 3, 4, 5, 6, 7]
>>> del a[::2]
>>> a
[1, 3, 5, 7]

생략 번호 에 대하 여
주로 다 차원 행렬 에 사용 되 는데 포 지 셔 닝 작업 시의 복잡 도 를 줄 이 고 많이 사용 하지 않 으 며 더욱 자세 한 설명 은 여기 참조.
>>> class C(object):
...  def __getitem__(self, item):
...   return item
...
>>> C()[1:2, ..., 3]
(slice(1, 2, None), Ellipsis, 3)

파일 조작
전체 파일 읽 기
바 이 너 리 모드 를 사용 합 니 다.예 를 들 어del a[1:4]모드 를 사용 하면 일부분 만 읽 을 수 있 습 니 다.
with open(path, 'rb') as f:
    return f.read()

줄 별로 읽 기
파일 대상 을 iterator 를 잘못 보 았 습 니 다.
with open(path, 'r') as f:
    for line in f:
        print line

좋은 웹페이지 즐겨찾기