問題が正しく理解されているかどうかは不明です(データ不足)。
あなたは
- 1)は、リスト内の> = 5000000値の最初の出現を取得し、しようとしていますか?
- 2)またはその位置?
- 3)あなたは以下のように配列のインデックスメソッドを使用することができます見つけようとしているその最初に出現した場合あなたは、とにかく
string
X> 「5000000.000」
で)int
(> = 5000000を比較しています。あなたが使用して取得することができ、その位置については
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
5000000.000
>>>
、
>>> print First_Range_Init_Freq
1
私はあなたが持つ文字列または整数と文字列を比較していると仮定しています。(問題サンプルリストを使用して)
Freq_Cust = ['4800000.000', '5000000.000' , '5000001.000', '50000010.000', '4900000.000', '500000.000' ]
First_Range_Init_Freq = [Freq_Cust.index(x) for x in Freq_Cust if x >= '5000000.000'][0]
print Freq_Cust[First_Range_Init_Freq]
結果int。そうでなければ、比較を正しいタイプとバランスさせる必要があります。
これがあなたが探しているものでない場合は教えてください。さらに詳細な質問を更新してください。
EDIT1
ご意見に基づき、問題は、数字をテキストとして比較しているため、結果が間違っているということです。
int
5000000番号は=フロート5000000.000ありながら、ない=、以下の '5000000.000' を
>>> '5000000' == '5000000.000'
False
>>> '5000000.000' > '5000000'
True
>>> 5000000 == 5000000.000
True
>>>
テキスト '5000000' を参照してください。
したがって、リストの値を浮動小数点にマップし、比較も浮動小数点で行うと、正しい結果が得られます。
Freq_Cust = [ '480万'、 '5000000'、 '5000001'、 '50000010'、 '4900万'、 '500000']
Freq_Cust = map(float,Freq_Cust)
First_Range_Init_Freq = [Freq_Cust.index(x) for x in Freq_Cust if x >= float('5000000.000')][0]
print Freq_Cust[First_Range_Init_Freq]
>>>
5000000.0
>>>
は勿論あなただけのx> = 5000000.000またはXを使用して比較することができます> = 5000000
あなたのリストの値が一部int
と一部float
ている場合は、map
キャッチオールソリューションとしてfloat
にするとよいでしょう。
*文字列*と比較しますか? –