다음은 제가 최근 몇 년간 수집한 실용적인 Python 팁과 도구입니다. 이것이 여러분에게 도움이 되기를 바랍니다.
교환변수
x = 6
y = 5
x, y = y, x
x 인쇄
>>> 5
y를 인쇄
>>> 6
줄의 if 문
"Hello"를 인쇄 if True else "World "
>>> 안녕하세요
Connection
아래 마지막 방법은 서로 다른 유형의 두 개체를 바인딩할 때 매우 멋집니다.
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
nfc + afc 인쇄
>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"
>>> 월드 1개
`1` + " world" 인쇄
>>> 세계 1개
1, "world" 인쇄
>>> 세계 1개
print nfc, 1
>>> ['Packers', '49ers'] 1
숫자 능력
#나누기 후 반내림
print 5.0 //2
>>> 2
# 2의 5제곱
인쇄 2**5
>> 32
부동 소수점 수의 나눗셈에 주의하세요
print .3/.1
>>> 2.9999999999999996
print .3//.1
> >> 2.0
수치적 비교
여러 언어에서 본 정말 훌륭하고 간단한 방법입니다
x = 2
if 3 > x > 1:
x 인쇄
>>> 2
1인 경우 0:
x 인쇄
>>> 2
두 개의 목록을 동시에 반복
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots "]
teama의 경우, zip(nfc, afc)의 teamb:
print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers 대 Patriots
색인된 목록 반복
teams = ["Packers", "49ers", "Ravens", "Patriots"]
인덱스의 경우, 열거된 팀(팀):
인쇄 인덱스, 팀
>>> 패커 0개
>>> 49ers 1개
> >> 2 Ravens
>>> 3 Patriots
List comprehension
목록이 주어지면 짝수 목록 방법을 선택할 수 있습니다.
숫자 = [ 1,2,3,4,5,6]
even = []
숫자의 경우:
숫자%2 == 0인 경우:
even.append(number)
는 다음과 같이 변환됩니다.
numbers = [1,2,3,4,5,6]
even = [숫자%2 == 0인 경우 숫자의 숫자]
멋지지 않나요, 하하.
사전 컴프리헨션
리스트 컴프리헨션과 유사하게 사전도 동일한 작업을 수행할 수 있습니다.
teams = ["Packers", "49ers", "Ravens", "Patriots" ]
print {key: value for value, key in enumerate(teams)}
>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}
초기화 목록 값
items = [0]*3
인쇄 항목
>>> [0,0 , 0]
목록을 문자열로 변환
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ". 팀)
>>> 'Packers, 49ers, Ravens, Patriots'
사전에서 요소 가져오기
시도/제외 코드가 우아하지 않다는 점은 인정하지만 여기에는 간단한 방법으로 사전에서 키를 찾으십시오. 해당 값을 찾을 수 없으면 두 번째 매개변수를 사용하여 변수 값을 설정합니다.
data = {'user': 1, 'name': 'Max', '3': 4}
try:
is_admin = data['admin' ]
KeyError 제외:
is_admin = False
다음과 같이 바꾸세요:
data = {'user': 1, 'name': 'Max ', '3': 4}
is_admin = data.get('admin', False)
목록의 하위 집합 가져오기
가끔 하위 집합만 원하는 경우도 있음 목록의 일부 요소는 목록의 하위 집합을 가져오는 몇 가지 방법입니다.
x = [1,2,3,4,5,6]
#처음 3
인쇄 x[:3]
> > > [1,2,3]
#중간 4
인쇄 x[1:5]
>>> [2,3,4,5]
#마지막 3개
print x[-3:]
>>> [4,5,6]
#이상한 항목
print x[::2]
>>> [1,3,5]
#짝수 항목
print x[1::2]
>>> [2,4,6]
FizzBuzz를 해결하는 60자
얼마 전 Jeff Atwood가 FizzBuzz라는 간단한 프로그래밍 연습을 홍보했습니다. 질문은 다음과 같이 인용되었습니다. 다음과 같습니다.
1부터 100까지의 숫자를 인쇄하는 프로그램을 작성하세요. 3의 배수는 숫자를 대체하기 위해 "Fizz"를 인쇄합니다. 3과 5의 배수인 숫자에 대해서는 "Buzz"를 인쇄합니다. "FizzBuzz"를 인쇄합니다.
이 문제를 해결하는 짧고 흥미로운 방법은 다음과 같습니다.
1
for x in range(101):print "fizz"[x%3*4 : :]+"buzz"[x%5*4::]or x
컬렉션
파이썬에 내장된 데이터 유형 외에도 컬렉션 모듈에는 몇 가지 특별한 사용 사례도 포함되어 있습니다. 카운터는 어떤 상황에서는 매우 실용적입니다. 올해 페이스북 해커컵에 참여해 보면 실용성까지 찾을 수 있다.
from collections import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e' : 1, 'o': 1})
반복 도구
컬렉션 라이브러리와 마찬가지로 특정 문제를 효율적으로 해결할 수 있는 itertools라는 라이브러리도 있습니다. 한 가지 사용 사례는 그룹 내 요소의 가능한 모든 조합을 알려주는 모든 조합을 찾는 것입니다
itertools 가져오기 조합
teams = ["Packers", "49ers", "Ravens ", "Patriots"]
조합 게임(팀, 2):
인쇄 게임
>>> ('Packers', '49ers')
>>> ('패커스', '레이븐스')
>>> ('패커스', '패트리어츠')
>>> ('49ers', '레이븐스' )
>>> ('49ers', 'Patriots')
>>> ('Ravens', 'Patriots')
False == True
이것은 실용적인 기술이라기보다는 흥미로운 점입니다. Python에서는 True와 False가 전역 변수이므로
False = True
False인 경우:
print "Hello"
else:
print "World"
>>> Hello