Python 列表-将字符串更改为以CSV形式导入的列表中的整数,而不是所有数据

Python 列表-将字符串更改为以CSV形式导入的列表中的整数,而不是所有数据,python,list,csv,import,int,Python,List,Csv,Import,Int,我在Python3中有以下代码 import csv import operator with open('herofull.csv','r') as file: reader=csv.reader(file,delimiter=',') templist=list(reader) print(templist) csv上的数据如下所示 程序将数据导入到列表中。然后我想将列表中每行的最后3项改为整数,这样我就可以用它们进行计算了,这可能吗?我尝试过各种各样的方法,但都不走

我在Python3中有以下代码

import csv
import operator

with open('herofull.csv','r') as file:
    reader=csv.reader(file,delimiter=',')
    templist=list(reader)

print(templist)
csv上的数据如下所示

程序将数据导入到列表中。然后我想将列表中每行的最后3项改为整数,这样我就可以用它们进行计算了,这可能吗?我尝试过各种各样的方法,但都不走运。我可以用一个简单的列表来做,但这就像列表中的一个列表一样被导入,这让我的大脑受到了伤害。请帮忙


Ross

可能是最简单的循环,尤其是如果你知道它是最后三个元素

for row in templist:
    for i in range(-3, 0):
        row[i] = int(row[i])

这不会在内存中创建新列表,只需更改现有的
模板列表

这将使用数据创建新列表,并将任何数字字符串转换为整数

new_list = []
for row in templist:
    new_list.append(
        [int(i) if i.isdigit() else i for i in row]
    )

print(new_list)

或者,如果您知道最后三个数字总是包含2位数或更少,则可以执行以下操作:

for line in templist:
    for index, element in enumerate(line):
        if element.isdigit() and len(element) <= 2:
            line[index] = int(element)
对于模板列表中的行:
对于索引,枚举中的元素(第行):
如果element.isdigit()和len(element)很酷…干杯

我有一个脑波,让这个工作

import csv

with open('herofull.csv','r') as file:
    reader=csv.reader(file,delimiter=',')
    templist=list(reader)

for row in templist:
    row[4]=int(row[4])
    row[5]=int(row[5])
    row[6]=int(row[6])

print(templist)

我现在可以做计算和附加列表,谢谢你的帮助。看起来我只是需要暂时停止思考它(木头、树木等等)

显示列表本身它会更容易…我错过了它的两个循环,列表中的列表,现在就得到它。干杯