2017-11-22 7 views
0

文字列のリストに整数があるかどうかを調べる必要があります。私は文字列で、INT(カテゴリID)を比較するため"in"演算子を使用して文字列をintに比較/変換

コンテキスト= [ '4'、 '6'、 '78']

if category.id in context: 

上記のコードは動作していません。

コンテキストがリストでエラーが発生するため、int(context)は使用できません。

category.idをstringに変換できますが、悪い状況が発生する可能性がありますか?

in演算子を使用すると、文字列をintに変換することができます。またはfor loopを使用する必要がありますか?

+0

... str(category.id)を文脈で試しましたか? – jkm

+1

@jkm 'category.idを文字列に変換できますが、悪い状況が出る可能性がありますか? 'OPはそのように思っていたようですが、正しいルートかどうかわかりません。 – MooingRawr

+4

あなたはこの2つのエントリ '01'と '001'を同じか違うと考えていますか? – user1190882

答えて

3

あなたはまた、整数のリストにcontextを変換するには、リストの内包表記を使用することを検討してください可能性があります。 contextが賢明整数に変換することができます文字列のリストであることが保証されている場合は

context_ints = [int(i) for i in context] 
if category.id in context_ints: 
    ... do stuff ... 

が、これはあなたのための最も安全な経路であり得ます。

+0

はい。ありがとう@PatrickHaugh – smolloy

2

あなたはいつもちょうどこのように、文字列にIDを更新できます。

class cat(): 
    def __init__(self, id): 
     self.id = id 

category = cat(4) 

context = ['4', '6', '78'] 

if str(category.id) in context: 
    print('True') 

#output 
True 
関連する問題