簡體   English   中英

在Python中對字典使用比較運算符

[英]Using a Comparison Operator on a Dictionary in Python

我有一段代碼,我想在特定數字范圍內的特定行中讀取。 例如,如果我使用row['DISTANCE'] <= '300' :該語句返回'300',但也返回任何大於'300'的數字。 我想在特定范圍內將特定行寫入文件。 此外,例如,如果語句為row['SCHEDULED'] < row['PERFORMED'] 有什么建議么?

這是一個代碼片段:

with open('test.csv', 'rb') as infile:

    reader = csv.DictReader(infile) 
    fieldnames = ['SCHEDULED','PERFORMED','AVAIL', 'DIST']

    outfile = open('ttest.csv','wb')    
    csvwriter = csv.DictWriter(outfile, delimiter=',', fieldnames=fieldnames, extrasaction = 'ignore')      
    csvwriter.writerow(dict((fn,fn) for fn in fieldnames))

    for row in reader:
        if ['DISTANCE'] <= '300':
            csvwriter.writerow(row)

infile.close()                                                      
outfile.close()

這是我的外表看起來的一個示例:

SCHEDULED                        PERFORMED      AVAIL      DIST
142                                 139         19459      1061
22                                  20          0          278
21                                  19          0          278
21                                  20          0          278
22                                  21          0          1484

字符串比較不遵循與整數比較相同的規則。 您想要的是整數比較,即:

if int(row["DISTANCE"]) <= 300:
    proceed_with_row(...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM