将字符串的元组转换为中的元组时的生成器对象结果

2024-09-27 20:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.csv文件,其中包含x/y坐标和其他信息。你知道吗

我需要提取x/y坐标信息以输入到另一个包中。该包接受一个元组列表,其中元组包含整数)例如[(1,2),(3,4)]

rdpList = []
with open ('test.csv', 'rb') as fp_in
    reader = csv.reader(fp_in, delimiter = ',')
    for row in reader:
        del row[0:4] #trimmming to column with x coordinates
        del row[2:] #trimming to column with y coordinate
        rdpList.append(tuple(row))

这可以让我关闭所需的结果,但是元组中的数据类型是string。例如[('1','2'),('3','4')]

努力

rdpList = []
with open ('test.csv', 'rb') as fp_in
    reader = csv.reader(fp_in, delimiter = ',')
    for row in reader:
        del row[0:4]
        del row[2:]
        rdpList.append(tuple(int(x) for x in tup) for tup in row)

给了我

[<generator object <genexpr> at 0x7f36452e1a00>, <generator object <genexpr> at 0x7f36452e1a50>]

努力

rdpList = []
with open ('test.csv', 'rb') as fp_in
    reader = csv.reader(fp_in, delimiter = ',')
    for row in reader:
        del row[0:4]
        del row[2:]
        for y in row:
            int(y)
        rdpList.append(tuple(row))

给了我

ValueError: invalid literal for int() with base 10: 'x'

努力

rdpList = []
with open ('test.csv', 'rb') as fp_in
    reader = csv.reader(fp_in, delimiter = ',')
    for row in reader:
        del row[0:4]
        del row[2:]
        rdpList.append(tuple(map(int, row.split(','))))

给了我

AttributeError: 'list' object has no attribute 'split'

我怎样才能得到我想要的结果?.csv文件的状态不重要,只有rdpList[]重要


Tags: csvintestforaswithopenreader
1条回答
网友
1楼 · 发布于 2024-09-27 20:19:43

从您的示例中,看起来坐标位于第5列和第6列。假设文件如下:

a,b,c,d,1,2,e,f
a,b,c,d,3,4,e,f
a,b,c,d,5,6,e,f

这就是你所需要的:

import csv

with open ('test.csv', 'rb') as fp_in:
    reader = csv.reader(fp_in)
    rdpList = [(int(row[4]),int(row[5])) for row in reader]

print rdpList

输出:

[(1, 2), (3, 4), (5, 6)]

相关问题 更多 >

    热门问题