删除python中的列表

时间:2017-03-03 21:54:22

标签: python csv

我正在制作一个脚本,删除列表中小于6.4的所有数字,但在我的列表编号中是字符串('9.4')。我想删除列表中所有数字中的',以便我可以发出if命令。

import csv
import operator
import re

x = 6.4

ss = open("APUESTAS.csv")
csv_f = csv.reader(ss,delimiter=";")

apuesta_perdedora = []

for row in csv_f:
    pne = row[1]
    apuesta_perdedora.append(row[2])


for item in apuesta_perdedora:
    if int(item) < x:
        apuesta_perdedora.remove(item)


print(list_2)
ss.close()

2 个答案:

答案 0 :(得分:4)

由于您正在从文件中读取数据,因此需要先将数字从字符串转换为浮点数,然后再将它们附加到列表中。

apuesta_perdedora.append(row[2])更改为apuesta_perdedora.append(float(row[2]))

您也遇到了

的问题
for item in apuesta_perdedora:
    if int(item) < x:
        apuesta_perdedora.remove(item)

在迭代同一列表时从列表中删除项目通常是个坏主意。您可以使用列表理解。请注意>符号(而不是删除我们保留的不需要的值):

apuesta_perdedora = [num for num in apuesta_perdedora if num > x]

或迭代列表的副本:

for item in apuesta_perdedora[:]:
    if item < x:
        apuesta_perdedora.remove(item)

答案 1 :(得分:0)

在循环播放列表时,无法修改列表。创建一个新列表,然后在循环完成时使用它覆盖旧列表:

new = []
for item in apuesta_perdedora:
    if float(item) >= x:
        new.append(item)
apuesta_perdedora = new # overwrite old list with new list