python tips(2)
일반적인 문자열 조합 작업 은 모두 사용
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.