Python実践スキルまとめ

高洛峰
高洛峰オリジナル
2016-10-19 16:02:411194ブラウズ

以下は私が近年集めた実践的な 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]

FizzBu​​zz を解くための 60 文字

少し前に、Jeff Atwood は FizzBu​​zz と呼ばれる簡単なプログラミング演習を推奨しました。その問題は次のように引用されています。

1 から 100 までの数字を出力し、倍数の場合は「Fizz」を出力するプログラムを作成してください。この数値では、5 の倍数の場合は「Buzz」が出力され、3 と 5 の倍数の数値の場合は「FizzBu​​zz」が出力されます。

この問題を解決するための短くて興味深い方法は次のとおりです:

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 = True

if False:

print "Hello"

else:

print "World"

>>> Hello



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。