ipython
IPythonのショートカット、ヒントとテクニック
サーチ…
備考
IPython(とJupyter Notebook)は、アンダースコアの特別な意味を定義しています。それは常に最新の出力を含んでいます。これは、複数のステップでデータを処理する場合に便利です。これは上の例で実証されています。テキストをクリーンアップするには、いくつかの正規表現を実行し、分割前に正規化します。 IPythonの外側では、各結果を新しい変数に格納するか、ステップをネストする必要があります。 IPythonでは、多くの場合、変数を調べたり、長い一連のネストされた呼び出しを再現することは面倒です。これは下線が現れる場所です。
一つのつまらないことがあります。グローバルスコープのアンダースコアに値を割り当てると、予期しない動作が発生します。例えば:
address = ('http://example.com', 80)
(_, port) = address
ここでは、タプルの2番目の要素であるポート番号だけに興味があります。だから私は大会に従い、それが使い捨てであることを示すために最初の要素をアンダースコアに割り当てます。ただし、アンダースコアの値はhttp://example.com
です。さらにコードを実行する場合は、
1+4
アンダースコアの期待値は5になります。ただし、そうではありません。値はまだタプルのドメインです。グローバルスコープ内のアンダースコアに割り当てると、値が破損するだけでなく、最新の出力の格納も停止されます。これは、関数またはループ内のアンダースコアに割り当てる場合には当てはまりません。
IPythonでのアンダースコアの特別な使用
from urllib.request import urlopen
from collections import Counter
import re
conn = urlopen('http://textfiles.com/100/dodontae.hum')
lines = conn.readlines()
conn.close()
# readlines() returns byte strings
data = ''.join([line.decode('utf-8') for line in lines])
# replace non-letters with a space
re.sub('[^A-Za-z]', ' ', data)
# condense successive whitespace into a single space
# the underscore retrieves the most recent output
re.sub('\s+', ' ', _)
# normalize the text by lowercasing and removing leading and trailing whitespace
_.lower().strip()
# split into words on space
words = _.split(' ')
from collections import Counter
word_count = Counter()
for word in words:
word_count[word[0]] += 1
word_count.most_common()
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow