2016-07-05 6 views
2

空の値を1つの値を持つ配列要素にマッチングしていて、配列に空の値がありません。しかし、まだこのスクリプトは動作します。空の値がPythonの配列の値と一致する方法

bが空で、配列要素が 'Arunsdsdds'あるとき、それが働いているどのように来る
import re 

b = "" 
links_check_arr = ['Arunsdsdds'] 
for links_find in links_check_arr: 
    if b in links_find: 
     print links_find 
     print b 

(それには空の値を持っていませんか)?

+0

空の文字列は、すべての空でない文字列(および他の空の文字列)に含まれています。 'in'の代わりに' == 'を使います。 – DeepSpace

+0

[空の文字列が別の文字列にあるかどうかをチェックするときにPythonがTrueを返す理由](http://stackoverflow.com/questions/27603885/why-python-returns-true-when-checking-if-an-empty -string-is-in-another) – tripleee

答えて

3

空の文字列は、常に任意の文字列の一部とみなされます。

>>> "" in "abcd" 
True 
1

空の文字列は、Python内のすべての文字列のサブです。これは、ストリングs[0:0]の長さ0の部分文字列が空文字列と等しいためです。

文字列sが空でないかどうかを確認する適切な方法は、空の文字列が "偽り"であるため、単純にif not s:です。

が空の文字列に等しいであることを確認するには、inではなく==を使用してください。

0

トリスタンは、Why Python returns True when checking if an empty string is in another?の詳細な回答を投稿しています。重要な文があります:

空の文字列は常にtrueを返します「ABC「に」」そう、他の 文字列の部分文字列であると考えられています。

この文は、Python 2.7で見つかります。参考資料、の章のExpressionsの記事を参照してください。 Python 3の場合はExpressions, chapter Membership test operationsです。

関連する問題