0

私はPythonの初心者です。リストに 10 個の要素を入力したいと思います。以下のプログラムは、各リストに 10 個の要素を追加します。しかし、以下のプログラムでは、リストに 11 個のオブジェクトが出力されるのはなぜですか? このプログラムはhttp://www.learnpython.org/page/Basic%20Operatorsリンクから取得しました。知りたかったのですがx = object()、どういう意味ですか?

x = object()
y = object()
i = 0
# change this code
x_list = [x]
y_list = [y]
while(i < 10):
    x_list.append((10))
    y_list.append(11)
    i = i + 1
#x_list = [x]
#y_list = [y]
big_list = x_list + y_list

print "x_list contains %d objects" % len(x_list) # prints 11 objects, #Why?
print "y_list contains %d objects" % len(y_list) # prints 11 objects, #Why?
print "big_list contains %d objects" % len(big_list)
print x_list.count(10)
print y_list.count(11)
    print big_list.count(10)
# testing code
if x_list.count(x) == 10 and y_list.count(y) == 10:
    print "Almost there..."
if big_list.count(x) == 10 and big_list.count(y) == 10:
    print "Great!"
4

5 に答える 5

4

x_list = [x]=> 1 つのオブジェクト。 while(i < 10): x_list.append((10))=> 10 個のオブジェクト (0 から 9) したがって、11 個は完全に正常です。x_list = []この最初の要素を持たないように (空のリスト)を設定する必要があります。

于 2012-05-10T09:40:42.913 に答える
3

learnpython.orgの基本演算子ページには、リストなど、さまざまなコンテキストで算術演算子を使用する例がいくつかあります。そのページのチュートリアルをすばやく読んだことに基づいて、おそらくページの作成者が求めていた答えは次のようになります。

x_list = [x] * 10
y_list = [y] * 10
big_list = x_list + y_list

これにより、10 x:sを含むリストが作成されます。

あなたはそれをするためにループを使っていました、それははるかに柔軟な方法です。ループを使用してリストを埋めるよりPython的な方法は、たとえばリスト内包表記を使用することです。

x_list = [x for i in xrange(10)]

またはforループを使用すると、自分でインデックスを追跡する必要はありません。

for i in xrange(10):
    x_list.append(x)
于 2012-05-10T09:56:12.290 に答える
3

以下のプログラムは、各リストに 10 個の要素を追加します。しかし、以下のプログラムでは、リストに 11 個のオブジェクトが出力されるのはなぜですか?

追加を開始する前に、リストには1つの要素が含まれていたためです。リスト[x]には 1 つの要素が含まれていますx。1 + 10 = 11。

x = object() を知りたいのですが、どういう意味ですか?

それはまさにそれが言うことを意味します:「xは呼び出しの結果の名前でなければなりませんobject」。objectはクラスなので、それを呼び出すとインスタンスが作成されます。インスタンスとは、まさにその名前のobjectとおりです。興味深いものは何もない単なるオブジェクトです。

于 2012-05-10T11:25:40.423 に答える
1

object()class の新しいインスタンスを生成するだけobjectです。最初にこの要素を に挿入しx_list、次にさらに 10 個の要素を追加します

于 2012-05-10T09:41:43.140 に答える
0

x_list には、X に 10 を足した 10 = 11... が含まれます。

y_list - 同じです。

入力x_list = [x]すると、リストがその中にのみ含まれるリストとして初期化されることを意味しxます。

于 2012-05-10T09:40:13.860 に答える