gpt4 book ai didi

Python迭代不进入if-elif

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:58 28 4
gpt4 key购买 nike

如果这是一个非常简单的问题,请原谅我。我已经在这几个小时了。我正在尝试每行读取一个 csv 文件。但是在最后一行,我不希望它附加任何“,”,这就是为什么我在 if-elif 语句中将问题分开。

我不确定这是否只是我困了,但我似乎无法解决这个简单的问题。当我打印出 print (iter, row_count , iter < row_count) 时,它还没有进入任何状态我 100% 确定最后一行是 False。

   #read csv
data = csv.reader(open(csvFile, 'rb'), dialect='excel')

reader = csv.reader(open(csvFile, 'r'), delimiter=",")
tempData = list(reader)
row_count = len(tempData)


#geojson template
template = \
'''\
{
"type" : "Feature",
"id" : "%s",
"geometry" : {
"type" : "Point",
"coordinates" : [%s, %s]
},
"properties" : {
"name" : "%s"
}
}
'''

#head of geojson
output = \
'''
{ "type" : "FeatureCollection",
"features" : [
'''

#loop in csv
iter = 0

for row in data:
iter += 1
print (iter, row_count , iter < row_count)
if (iter < row_count == True):
print("TRUE")
id = row[0]
name = row[1]
latitude = row[2]
longitude = row[3]
output += template % (row[0], row[3], row[2], row[1])
output += ","
print (output)
elif (iter < row_count == False):
print("FALSE")
id = row[0]
name = row[1]
latitude = row[2]
longitude = row[3]
output += template % (row[0], row[3], row[2], row[1])
print (output)
#tail of geojson
output += \
'''\
]
}
'''

#open geojson file to write output
outFileHandler = open(geojsonFilePath, 'w')
outFileHandler.write(output)

print("Converted to geoJSON")
outFileHandler.close()

最佳答案

iter < row_count == True

iter < row_count == False

不要做你认为他们做的事。

Python 语法允许 chaining of comparisons , 所以像

a < x < b

相当于

(a < x) and (x < b)

这是一个非常方便的功能,但它意味着您的 iter < row_count == True相当于

(iter < row_count) and (row_count == True)

所以你应该改变if声明

if iter < row_count:

并更改 elif平原else:

关于Python迭代不进入if-elif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40158903/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com