以下は私が近年集めた実践的な Python のヒントとツールです。お役に立てれば幸いです。
変数交換
x = 6
y = 5
x, y = y, x
print x
>>> 5
print y
>>> 6
ifステートメントインライン
print "Hello" if True else "World"
>>Hello
Connection
以下の最後の方法は、タイプの異なる 2 つのオブジェクトをバインドする場合に非常に優れています。
nfc = ["パッカーズ", "49ers"]
afc = ["レイブンズ", "ペイトリオッツ"]
print nfc + afc
>>> ['パッカーズ', '49ers', 'レイブンズ', 'ペイトリオッツ']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
> >> 1 ワールド
print nfc, 1
>>> ['Packers', '49ers'] 1
数値スキル
#割り算後の切り捨て
print 5.0//2
>>> 2
# 2の5乗
print 2**5
>> 32
浮動小数点数の割り算に注意してください
print .3/.1
>>> 2.9999999999999996
print .3/ /. 1
>>> 2.0
数値比較
これは多くの言語で見たことがあるとてもシンプルな方法です
x = 2
if 3 > x > 1:
print x
> >> 2
if 1 0:
print x
>>> 2
2つのリストを同時に反復
nfc = ["Packers", "49ers"]
afc = ["Ravens" , "Patriots"]
for teama,teamb in zip(nfc, afc):
printtea+「vs.」+teamb
>>>パッカーズ対レイブンズ
>>>49ers対ペイトリオッツ
ベルト インデックスのリストの反復
teams = ["Packers", "49ers", "Ravens", "Patriots"]
forindex,team in enumerate(teams):
printindex,team
>>> 0パッカーズ
>>> 1 49ers
>>> 2 レイブンズ
>>> 3 ペイトリオッツ
リストの内包表記
リストが与えられた場合、偶数リスト法を選択できます:
numbers = [1,2 ,3 ,4,5,6]
even = []
fornumberinnumber:
ifnumber%2 == 0:
even.append(number)
は次のように変換されます:
numbers = [ 1,2,3,4,5,6]
even = [number%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 ", " .join(teams)
>>> 'Packers、49ers、Ravens、Patriots'
辞書から要素を取得
Try/Except コードが洗練されていないことは認めますが、ここに簡単な方法があります。辞書で試してみてください。キーを検索します。対応する値が見つからない場合は、2 番目のパラメーターを使用してその変数値が設定されます。
data = {'user': 1, 'name': 'Max', 'three': 4}
try:
is_admin = data['admin']
KeyError:
is_admin = False
を除く次のように置き換えます:
data = {'user': 1, 'name': 'Max', 'three': 4}
is_admin = data.get('admin', False)
のリストを取得します子セット
リスト内の要素のサブセットのみが必要な場合もあります。リストのサブセットを取得する方法をいくつか紹介します。
x = [1,2,3,4,5,6]
#最初の3
print x[:3]
>>> [1,2,3]
#中4
print 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 までの数字を出力し、倍数の場合は「Fizz」を出力するプログラムを作成してください。この数値では、5 の倍数の場合は「Buzz」が出力され、3 と 5 の倍数の数値の場合は「FizzBuzz」が出力されます。
この問題を解決するための短くて興味深い方法は次のとおりです:
1
for x in range(101):print "fizz"[x%3*4::]+"buzz"[x%5* 4 ::]または今年の Facebook HackerCup に参加した人なら、その実用性さえ理解できるでしょう。
コレクションから import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
反復ツール
コレクション ライブラリと同様に、特定の問題を効率的に解決できる itertools と呼ばれるライブラリもあります。使用例の 1 つは、すべての組み合わせを見つけることです。これにより、グループ内の要素の可能なすべての組み合わせがわかります
itertools import組み合わせから
teams = ["Packers", "49ers", "Ravens", "Patriots"]
組み合わせのゲーム用(チーム、2):
ゲームを印刷
>>> ('Packers'、'49ers')
>> ('パッカーズ'、'レイブンズ')
>>> ('パッカーズ'、'ペイトリオッツ')
>>> ('49ers'、'レイブンズ')
>>> ('49ers' 、 'Patriots')
>>> ('Ravens', 'Patriots')
False == True
これは、Python では True と False がグローバル変数であるため、次のようになります。
False = Trueif False: print "Hello"else: print "World">>> Hello