여기에 열 파이썬 유용한 팁과 트릭입니다. 그들 중 일부는 언어의 초보자는 종종 실수를합니다.
참고 : 우리는 파이썬 3 사용하는 가정
1. 목록 함축
당신은 목록이 있습니까 :bag = [1, 2, 3, 4, 5]
이제 당신은 두 번 할 모든 요소, 그것은 다음과 같습니다 :[2, 4, 6, 8, 10]
언어의 사전 경험을 바탕으로 대부분의 초보자는 그것을 이런 식으로 할 아마 것
bag = [1, 2, 3, 4, 5] for i in range(len(bag)): bag[i] = bag[i] * 2
그러나 더 좋은 방법이있다 :
bag = [elem * 2 for elem in bag]
아주 간단 하죠? 이것은 파이썬의 지능형리스트라고합니다.
목록 함축의 설명을 더보고 트레이 Hunner의 튜토리얼을 클릭합니다.
목록을 통과합니다
계속, 또는 위의 목록입니다.
가능하면 그렇게 피하려고 :
bag = [1, 2, 3, 4, 5]
for i in range(len(bag)):
bag[i] = bag[i] * 2
대신 다음과 같이해야합니다 :
bag = [elem * 2 for elem in bag]
x가리스트 인 경우, 당신은 그것의 요소를 반복 할 수 있습니다. 대부분의 경우 각 요소의 인덱스를해야하지만 비한다면, 다음 기능을 열거 사용하지 마십시오. 그것은 다음과 같습니다 :
bag = [1, 2, 3, 4, 5]
for i in range(len(bag)):
print(bag[i])
매우 직관적.
3. 교환 요소
파이썬이나 C 언어와 자바에서 오는 경우, 당신은이에 익숙해 수 있습니다 :
a = 5
b = 10
# 交换 a 和 b
tmp = a
a = b
b = tmp
그러나 파이썬은 더 나은 더 자연스러운 방법을 제공합니다!
a = 5
b = 10
# 交换a 和 b
a, b = b, a
예쁜만큼, 맞죠?
4. 초기화 목록
당신은 정수 0의 목록을 원하는 경우 10, 당신이 먼저 생각할 수 있습니다 :
bag = []
for _ in range(10):
bag.append(0)
그것은 또 다른 방법 :
bag = [0] * 10
더 우아한 참조하십시오.
참고 : 목록 목록이 포함되어있는 경우,이 얕은 복사본을 생성합니다.
예를 들면 :
bag_of_bags = [[0]] * 5 # [[0], [0], [0], [0], [0]]
bag_of_bags[0][0] = 1 # [[1], [1], [1], [1], [1]]
아차! 모든 목록이 변경되었습니다, 우리는 첫 번째 목록을 변경하고 싶습니다.
그것을 읽고 그것을 수정 :
bag_of_bags = [[0] for _ in range(5)]
# [[0], [0], [0], [0], [0]]
bag_of_bags[0][0] = 1
# [[1], [0], [0], [0], [0]]
마음에 베어링 :
"조기 최적화는 모든 악의 근원이다"
목록이 필요 초기화, 자신에게 물어는?
건설 문자열
당신은 종종 문자열을 출력해야합니다. 많은 변수가있는 경우, 다음을 피하기 :
name = "Raymond"
age = 22
born_in = "Oakland, CA"
string = "Hello my name is " + name + "and I'm " + str(age) + " years old. I was born in " + born_in + "."
print(string)
이마, 그것은 그것을 많이 화가 보인다? 당신은 .format, 대신 아주 간단한 방법을 사용할 수 있습니다.
이 작업을 수행하려면 :
name = "Raymond"
age = 22
born_in = "Oakland, CA"
string = "Hello my name is {0} and I'm {1} years old. I was born in {2}.".format(name, age, born_in)
print(string)
훨씬 나아!
6. 반환 tuples
(튜플)
파이썬은 인생을 더 쉽게 만들고, 당신이 함수에서 여러 요소를 반환 할 수 있습니다. 그러나 이러한 일반적인 오류를 자격의 튜플을 풀고 때 :
def binary():
return 0, 1
result = binary()
zero = result[0]
one = result[1]
이 필요하지 않습니다, 당신은이를 대체 할 수있다 :
def binary():
return 0, 1
zero, one = binary()
모든 요소가 밑줄로 반환해야하는 경우 _ :
zero, _ = binary()
그것은 매우 효율적입니다!
제 통로 Dicts
(사전)
당신은 종종 줄 것이다 dicts
작성 key,pair
(키, 값).
당신이 존재하지 않는 액세스하려고하는 경우 dict
에 key
, 방지하기 위해 될 수있다 KeyError
, 당신은이 작업을 수행하는 경향이 실수를 :
countr = {}
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
for i in bag:
if i in countr:
countr[i] += 1
else:
countr[i] = 1
for i in range(10):
if i in countr:
print("Count of {}: {}".format(i, countr[i]))
else:
print("Count of {}: {}".format(i, 0))
그러나와 get()
더 좋은 방법.
countr = {}
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
for i in bag:
countr[i] = countr.get(i, 0) + 1
for i in range(10):
print("Count of {}: {}".format(i, countr.get(i, 0)))
물론 당신이 사용할 수있는 setdefault
대신에.
그것은 또한 더 간단하지만 약간의 추가 비용 접근법을 사용 :
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
countr = dict([(num, bag.count(num)) for num in bag])
for i in range(10):
print("Count of {}: {}".format(i, countr.get(i, 0)))
당신은 또한 사용할 수 있습니다 dict
함축한다.
countr = {num: bag.count(num) for num in bag}
그들은 각 때문에 두 방법 모두 큰 오버 헤드 count
목록을 통과합니다 호출됩니다.
8 라이브러리를 사용하여
그냥 기존 라이브러리는 당신이 정말로하고 싶은 일을 할 수 있습니다 가져옵니다.
또는 위의 예제 것을, 우리는 횟수를 목록에 나타나는 수를 계산하는 함수를 만들었습니다. 음, 그런 일을 할 수있는 라이브러리는 이미 존재한다.
from collections import Counter
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
countr = Counter(bag)
for i in range(10):
print("Count of {}: {}".format(i, countr[i]))
라이브러리를 사용하는 몇 가지 이유 :
코드는 정확하고 테스트입니다.
그들의 알고리즘은 최적의, 그래서 더 빨리 실행될 수 있습니다.
추상화 : 그들은 취소 및 문서 친화적 인, 아직 구현되지 않은 것들에 초점을 맞출 수 가리 킵니다.
마지막으로, 이미, 당신은 재활용 휠이 없습니다.
목록 9. 슬라이스 / 공정
지정할 수 있습니다 start
점과 stop
같은 점을, list[start:stop:step]
. 우리는 목록의 다섯 개 가지 요소 전에 제거 :
bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for elem in bag[:5]:
print(elem)
이것은 우리가 지정한 슬라이스있다 stop
가 목록에서 다섯 개 가지 요소를 제거하기 전에 중지 한 후, 포인트는 5입니다.
수행하는 방법의 마지막 5 개 요소하면?
bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for elem in bag[-5:]:
print(elem)
나는 그것을 이해하지? -5
이 목록의 끝에서 다섯 개 가지 요소를 의미한다.
당신이 요소를 간격 작업을 나열 할 경우, 당신은 할 수 있습니다 :
bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for index, elem in enumerate(bag):
if index % 2 == 0:
print(elem)
그러나 당신은이 방법을 수행해야합니다
bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for elem in bag[::2]:
print(elem)
# 或者用 ranges
bag = list(range(0,10,2))
print(bag)
이 단계의 목록입니다. list[::2]
두 단계 동안 추출 요소 목록을 의미한다.
당신이 사용할 수있는 list[::-1]
멋진 플립 목록을.
10. 탭 키 또는 스페이스 바를
장기적으로, 탭 및 공백 믹스 재해에, 당신이 볼 수됩니다 IndentationError: unexpected indent
. 당신은 탭 키 또는 스페이스 바를 선택하든, 당신은 당신의 파일 및 프로젝트에 보관해야합니다.
공간 대신 탭을 사용하는 한 가지 이유는, 탭은 모든 편집기에서 동일하지 않습니다. 그것은 편집기의 사용에 따라 달라집니다, 탭 2-8 공간으로 간주 될 수 있습니다.
코드를 작성할 때 당신은 또한 공간 탭을 정의 할 수 있습니다. 그래서 당신은 탭으로 약간의 공간을 사용하도록 선택할 수 있습니다. 네 공백 대부분의 파이썬 사용자.
이것은 당신이 큰 또는 작은 흰색 암소, 또는 함께 진행 상황을 이해하는 법을 배워야 함께 올 수있는 라인으로 전환 할 것인지, 내 학습 파이썬 스커트 [784758214]입니다! 내부 스커트는 개발 도구, 건조 제품과 공유 할 수있는 기술 많은 정보를 제공합니다! 나는 초보자 우회 희망
정교한 천천히 재생, 너무 빠른 성공하지 마십시오.
당신이 흥미있는 프로그램을 느끼는 경우, 성장은 더 이상 고통없는, 재미 학습이된다.