2017-04-07 10 views
-2

2つのリストの重複する要素があればそれを見つけて、それを整数に変換します。スライシング可能な空リストPython

list_converter = intersection[0] 

値が1つのみ、または値のないリストを返します。値なしならば、私が手:

list_converter = intersection[0] 
IndexError: list index out of range 

にはリストが空でない場合に、これを行うために、またはエラーを回避するためにそこに良い方法ですか?

+1

をリストが空のときに戻りますか?入力と予想される出力を投稿してください。 –

+0

それだけでエラーは発生しません。私はそれが何も戻ってきても問題ありません。 – Detterman

答えて

0
list(set(list1).intersection(list2)) 
+1

これでIndexErrorを修正できますか?詳細を教えてください。 – Kevin

0

あなたはif文でリストの長さを確認することができます。

if len(intersection) > 0: 
    list_converter = intersection[0] 
else: 
    print "List is empty!" 
1

あなたは簡単に行うことができます:Pythonで

if intersection: 
    list_converter = intersection[0] 
else: 
    print "No intersection" # Or whatever you want to do if there isn't an intersection 

を、空のリストは、(すなわち[])と評価さFalseであるため、真偽値を使用して空のリストをチェックできます。あなたはintersectionが空の場合、空のリストを取得したい場合は

0

、あなたが使用できます。

list_converter = intersection[0:1] 

エラーが発生しませんようスライスの終わりには、リストの末尾を超えているとき:

l = [1, 2 ,3] 
l[0:1] 
# [1] 

l = [] 
l[0:1] 
#[] 

あなたが何かをしたい場合は、try/exceptブロックを使用します。あなたはそれをしたくないものを

try: 
    list_converter = intersection[0] 
except IndexError: 
    list_converter = whatever you want 
関連する問題