2016-04-06 4 views
-2

私は以下のことを行うことは可能ですか?もしそうなら、私は間違って何をしていますか?空でないリストと空のリストの両方でfindを使用できますか?

リスト内の最後のアイテムを取得し、リストが空であっても最後のアイテムを返すのは、.find()です。

私はこのようなリストがあります:

list = ["item1", "item2", "item3", "etc"]

を、私はそれが空の場合でも、最後の要素を取得したいです。これを行うには、list[-1:]を使用して最後の要素にアクセスします。私の問題は、そのリストの最後の要素に.find()を使用する必要があると私は思っています。ただし、リストが空の場合、.find()は機能しません。

list[-1]etcを返しますが、list[-1:]['etc']を返すため、動作しない理由があります。この状況で.find()を使用する他の方法はありますか?

+2

空の場合、リストはどのように最後の要素を持つことができますか? –

+0

単純なif/elseステートメントを使用してリストが空であれば、_check_できるようにコードを書き直して、何か違うことをする方がはるかに良いでしょう。存在しない項目で '.find()'を実行するときにあなたのプラン全体が動いているなら、大きな問題があるでしょう:) –

+0

存在しない要素に対して 'find'を使いたいとします。あなたは何をしたいのですか?あなたは空のガレージで最後の車を運転することができると思いますか?最後のポテトチップを空の袋に入れて食べる?あなたがしようとしていることは意味がありません。あなたはリストの空を検出し、何か他のことをする必要があります。 – user2357112

答えて

0

リストに何かがあるかどうかを調べて見つからないのはなぜですか?

>>> list = [] 
>>> if list: 
     #You would use find here. 
...  print("not empty") 
... else: 
...  print("empty") 
... 
empty 
>>> 
+0

len(list)> 0の場合は実際に修正しましたが、あなたのコードはあまりにも –

+0

@ D.Joeです。純粋主義者が何を言っているのか分かりません。 'len'関数を呼び出すのは、' if list'を使うよりも高価かもしれませんが、コードが動作していて、それを理解していれば、いずれかの方法が良いと言うでしょう。 – octopusgrabbus

+0

@ D.Joe: 'if list:'を使うのが良いでしょう。 [ここ](https://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty)を参照してください。 – zondo

関連する問題