문제가 올바르게 (불충분 한 데이터인지) 잘 모르는지 확실하지 않습니다.
당신은
- 1) 목록에서> = 5000000 값의 첫 번째 항목 가져 오기하려고합니까?
- 2) 또는 그 위치는? 그 첫 번째 항목은 당신이 다음과 같이 배열 인덱스 방법을 사용할 수 있습니다 찾으려고 노력하는 경우
- 3)은
string
X> '5000000.000'
어쨌든 포함) int
(> = 5000000을 비교된다. (문제를 사용하여 샘플 목록)
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]
결과 :
사용 얻을 수있는 위치에 대한
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
난 당신이 문자열로 문자열을 비교하거나 함께 int로하는 가정입니다 int. 그렇지 않으면 올바른 유형의 비교를 수행해야합니다.
내가 원하시는 것이 아닌지 알려주십시오. 더 자세한 내용으로 질문을 업데이트하십시오.
EDIT1
귀하의 의견에 따라 문제는 당신이 숫자를 텍스트로 비교하고 잘못된 결과를주는 것이라고 생각합니다.
예 : 원문 '5000000', 아래
>>> '5000000' == '5000000.000'
False
>>> '5000000.000' > '5000000'
True
>>> 5000000 == 5000000.000
True
>>>
를 참조하는 것은 = A int
5000000 번호가있는 동안 '5000000.000'= 5000000.000을 떠입니다.
그래서 목록 값을 float에 매핑하고 비교가 float으로 완료되면 올바른 결과가 나타납니다.
Freq_Cust = '4800000', '5000000', '5000001', '50000010', '49000000', '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를 이용하여 비교할 수있다 > = 목록 값이 부분 int
및 부품 float
있습니다 5000000
경우 map
을 포괄 솔루션으로 float
할 수 있습니다.
* 문자열 *과 비교합니까? –