4

私のコードは次のとおりです。

prices = {'banana':'4', 'apple':'2', 'orange':'1.5', 'pear':'3'}
stock = {'banana':6, 'apple':0, 'orange':32, 'pear':15}

print(prices.keys)
print("price :" + str(prices.values))
print("stock :" + str(stock.values))

タイプを求めたかのように吐き出される理由がわかりません。何を与える?

実際、私のコード ロジックは間違っています。

コードで次のように吐き出したい

キー価格 : 値 在庫 : 値

たとえば、これはどのように見えるべきかです

リンゴの価格: 2 在庫: 0

4

5 に答える 5

7

有用なものを取得するには、メソッドを呼び出す必要があります。

print (prices.keys())

ただし、python3.x では、おそらく見たくない余分なジャンクが出力されるため、これは印刷には特に適していません。

またはstr.joinから返されたオブジェクトでの使用を検討することをお勧めします。dict.keys()dict.values()

print (' '.join(prices.keys()))

str.joinあなたが期待することのほとんどを行います。左側の文字列は、渡す iterable の各要素の間に挿入される区切り文字ですjoin。例えば:

"!".join(["foo","bar","baz"])

文字列になります: "foo!bar!baz". ここで唯一の問題は、渡す iterable の各要素はstr.join文字列でなければならないということです。


あなたの編集に関しては、

prices = {'banana':'4', 'apple':'2', 'orange':'1.5', 'pear':'3'}
stock = {'banana':6, 'apple':0, 'orange':32, 'pear':15}
prices.keys() & stock.keys()  #{'orange', 'pear', 'banana', 'apple'}
for item in (prices.keys() & stock.keys()):
    print (item,"price:",prices[item],"stock:",stock[item])

出力:

orange price: 1.5 stock: 32
pear price: 3 stock: 15
banana price: 4 stock: 6
apple price: 2 stock: 0

それはあなたが望むもののようです。

于 2013-01-22T21:44:00.540 に答える
3
prices = {'banana':'4', 'apple':'2', 'pear':'3'}
stock = {'banana':6, 'orange':32, 'pear':15}
for item in (prices.keys() & stock.keys()):
    print (item,"price:",prices.get(item,'-'),"stock:",stock.get(item,0))

プロデュース

orange price: - stock: 32
pear price: 3 stock: 15
banana price: 4 stock: 6
apple price: 2 stock: 0

デフォルトで get を使用すると、株価辞書と価格辞書にそれぞれ異なるフリット (「キー」) が含まれている場合に役立ちます。ここ.get()で関数が本当に役立ちます。

mgilson が述べたように、次の行はフルーツの完全なセットが作成される場所です。

prices.keys() & stock.keys()  #{'orange', 'pear', 'banana', 'apple'}

以前に set を使用してこれを行ったこともあります

set(prices.keys().extend(stock.keys())

しかし、私は&アプローチを好みます。

于 2013-01-22T22:39:34.603 に答える
0
prices = {"banana": 4, "apple": 2, "orange": 1.5, "pear": 3}
stock  = {"banana": 6, "apple": 0, "orange": 32, "pear": 15}
for key in prices:
    print key
    print "stock: %s" % stock[key]
    print "prices: %s" % prices[key]

出力:

orange
stock: 32
prices: 1.5
pear
stock: 15
prices: 3
banana
stock: 6
prices: 4
apple
stock: 0
prices: 2
=> None
于 2016-07-13T05:22:03.003 に答える
0

両方の辞書/オブジェクトが同じキーを持っているため、単純な for ループを使用して辞書の 1 つを反復処理し、各アイテムの価格と在庫を出力できます。

prices = {"banana": 4, "apple": 2, "orange": 1.5, "pear": 3}
stock  = {"banana": 6, "apple": 0, "orange": 32, "pear": 15}
for key in prices:
    print "stock: %s" % stock[key]
    print "prices: %s" % prices[key]
于 2016-07-12T15:52:25.160 に答える