1

私はPythonの初心者です。

コードの一部を見て、たとえば辞書などのデータ構造の内部にあるものを理解しようとしていることに常に気づきます。実際、私が最初に解決しようとしているのは、「これはどのようなデータ構造なのか?」ということです。そして、その中にあるものをどうやって見るかを考えようとします。私は変数を見て、「これは dict ですか、それともリストですか、それとも multidict ですか、それとも私がまだよく知らない何かですか?」と言いました。そして、「中身は?」。膨大な時間がかかり、正しいアプローチを取っているかどうかわかりません。

そこで問題は、「Python の達人は、何かがどのような種類のデータ構造であるかをどのように見つけ、それらのデータ構造の内部に何が入っているかを確認するためにどのような手法を使用するのか?」ということです。

質問が一般的すぎないことを願っていますが、有用なコードを作成することは言うまでもなく、データ構造の認識とその内容の表示に関する問題を修正しようとするだけで、途方もない時間を費やしています。

ありがとうございます。

4

4 に答える 4

3

変数に type() 関数を使用すると、データ型がわかります。例えば:

inventory = {'cows': 4, 'pigs': 3, 'chickens': 5, 'bears': 2}
print(type(inventory))

印刷します

<class 'dict'>

これは、変数 inventory が辞書であることを意味します。

その他の可能なデータ型は、文字列の場合は「str」、整数の場合は「int」、浮動小数点の場合は「float」、タプルの場合は「tuple」、ブール値の場合は「bool」です。

コレクションの内容を確認するには、print() 関数を使用するだけです。

aList = [ 'hunger', 'anger', 'burger']
print(aList)

出力します

['hunger', 'anger', 'burger']
于 2012-06-08T02:05:17.113 に答える
2

関連する場所にを配置import pdb;pdb.set_trace()し、デバッガーで 、 、または必要なその他の形式の検査を使用dir().__dict__ますpp

于 2012-06-08T04:34:52.320 に答える
2

私は通常、タイプが正確に何であるかよりも、タイプがどのように/使用されるかを気にします。

たとえば、次のようにオブジェクトを使用するとします。

foo["hey"] = "there"
for key, value in foo.items():
    print key, '->', value

次に、「foo」はある種の dict のようなオブジェクトであると想定し、さらに調査する理由がない限り、それだけに関心があります。

(注:私はまだpython 2.xの土地にいます.python 3.xでは構文が少し異なりますが、ポイントは残ります)

于 2012-06-08T02:39:42.217 に答える
2

Python では、「これは何ですか?」ではなく、「これは何をするのですか?」と尋ねた方がよい場合があります。または「これはどのように使用されますか?」。のようにインデックスが付けられたものが表示された場合a['foo']、それがディクショナリであるか他のオブジェクトであるかは問題ではなく、単純に文字列によってインデックス可能であるということです。

このアイデアは通常、ダック タイピングと呼ばれているため、これを検索すると役立つ情報が得られる場合があります。クイック検索でこの記事が見つかりました。これはあなたに関連していると思われます: http://www.voidspace.org.uk/python/articles/duck_typing.shtml

于 2012-06-08T02:43:56.737 に答える