2017-11-09 4 views
0

なぜnoneが自分のコードを思いつき、どうすれば修正できるのですか?someArray.insert()の印刷が「none」と表示されるのはなぜですか?どのように修正できますか?

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

stores=["meijer", "walmart", "kroger", "trader joes", "dollar general"] 
print str(stores.insert(3, "aldi"))+("\nAldi is now in the list:\n")+str((stores)) 

それは、この出力:

None 
Aldi is now in the list: 
['meijer', 'walmart', 'kroger', 'aldi', 'kohls', 'dollar general'] 
+4

'list.insert'はインプレースで実行され、' None'を返します。 –

+2

'list.insert'は' None'を返します –

+0

list.insertを区切らずに1行に印刷する方法はありますか? – Dylan

答えて

1

あなたが本当にはワンライナーを持たなければならない場合は、ここでは、Python 2で行うことができる方法です。

stores = ["meijer", "walmart", "kroger", "trader joes", "dollar general"] 
print stores.insert(3, "aldi") or "\nAldi is now in the list:\n%s" % stores 

出力

Aldi is now in the list: 
['meijer', 'walmart', 'kroger', 'aldi', 'trader joes', 'dollar general'] 

stores.insert(3, "aldi")戻りNone、およびNone or thingthingに評価されるためこれが動作します。

+0

ありがとう! PM 2Ring !!!!!!!!!!! – Dylan

+0

%sと%は何をするのですか? – Dylan

+1

@Dylanこれは、文字列の書式設定を行う古い方法です。 '%s'は"ここに文字列を挿入する "と言っています、他の'% 'は'%s'を含む文字列に挿入するオブジェクトやタプルを導入します。あなたは[docs](https://docs.python.org/2/library/stdtypes.html#string-formatting-operations)で読むことができます。多くの人は、より読みやすい '.format'メソッドを使う方が好きです(しかし古い方法は少し速く、よりコンパクトです)。また、Python 3では、f-stringsを使用した新しいフォーマット方法もあります。 –

関連する問題