値のみを一致させたい場合は、リストを使用できます。
>>> pcode1 = 239
>>> pcode2 = 245
>>> pcode3 = 210
>>> pcode4 = 217
>>> lis = [pcode1, pcode2, pcode3, pcode4]
>>> allpcode= 220
>>> for i,x in enumerate(lis):
if x < allpcode:
print "pcode{} is less than {}".format(i+1,allpcode)
elif x > allpcode:
print "pcode{} is greater than {}".format(i+1,allpcode)
...
pcode1 is greater than 220
pcode2 is greater than 220
pcode3 is less than 220
pcode4 is less than 220
より良い辞書の使用:
変数は Python の値への参照にすぎないため、変数名にアクセスすることはできません。そして、pcodes
それらのそれぞれに変数を定義することがたくさんある場合、この問題を解決するには悪い方法です.dictを使用すると、はるかにクリーンになります。
#create dictionary with keys named pcode1, pcode2,...
>>> dic = {'pcode1':239, 'pcode2':245, 'pcode3':210, 'pcode4':217}
>>> for k,v in dic.items():
if v < allpcode:
print "{} is less than {}".format(k ,'allpcode')
elif v > allpcode:
print "{} is greater than {}".format(k,'allpcode')
...
pcode3 is less than allpcode
pcode2 is greater than allpcode
pcode1 is greater than allpcode
pcode4 is less than allpcode
辞書は順序を維持しませんが、特定の順序でキーを取得するためにcollections.OrderedDict
必要になる場合があります。sorted