Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不使用dict从对象访问python成员_Python_Arrays_Dictionary - Fatal编程技术网

不使用dict从对象访问python成员

不使用dict从对象访问python成员,python,arrays,dictionary,Python,Arrays,Dictionary,这是我目前遇到一些问题的应用程序的一小部分 import csv with open('eggs.csv', 'rb') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row['first_name'], row['cat']) print(row[1]) 应用程序部分运行良好,没有问题,但我希望通过第I个元素或通过数值从“行”访问每个值 然而,

这是我目前遇到一些问题的应用程序的一小部分

import csv
with open('eggs.csv', 'rb') as csvfile:
     reader = csv.DictReader(csvfile)
     for row in reader:
         print(row['first_name'], row['cat'])
         print(row[1])
应用程序部分运行良好,没有问题,但我希望通过第I个元素或通过数值从“行”访问每个值

然而,这似乎并不像预期的那样起作用

是否有一种特定的方式可以访问成员项,而无需直接调用其列名


感谢您的帮助和澄清。

csv模块为您提供了两种访问文件每行数据的广泛方式:

  • 按索引,使用;或
  • 按键,使用
  • 但是,请注意,
    DictReader
    实例有一个
    fieldnames
    属性,该属性是“一个序列,其元素按顺序与输入数据的字段相关联”,因此要从索引转换为键,您可以使用:

    row[reader.fieldnames[1]]
    

    csv
    模块为您提供了两种从文件的每一行访问数据的方法:

  • 按索引,使用;或
  • 按键,使用
  • 但是,请注意,
    DictReader
    实例有一个
    fieldnames
    属性,该属性是“一个序列,其元素按顺序与输入数据的字段相关联”,因此要从索引转换为键,您可以使用:

    row[reader.fieldnames[1]]
    

    不要使用
    DictReader()
    ,如果你想要的只是一个列表列表,那么就使用
    csv.reader()
    我在下面假设你想要同时使用键和索引,但是如果你只想要索引@Jkdc是正确的,就使用
    reader
    。谢谢大家。非常有洞察力,帮助我完成了allot。它稍微高级一些,但您也可以使用
    csv.reader()
    并将每一行转换为一行。这样做的好处是,它允许您通过整数索引或属性引用每一行的内容。对于后者,我的意思是这样的:
    row.first\u name
    row.cat
    。一个可能的缺点是,与字典不同,元组的内容是不能更改的。不要使用
    DictReader()
    ,如果您只需要一个列表列表,那么就使用
    csv.reader()
    ,我在下面假设您想同时使用键和索引,但如果您只希望索引@Jkdc是正确的,只需使用
    阅读器
    。谢谢各位。非常有洞察力,帮助我完成了allot。它稍微高级一些,但您也可以使用
    csv.reader()
    并将每一行转换为一行。这样做的好处是,它允许您通过整数索引或属性引用每一行的内容。对于后者,我的意思是这样的:
    row.first\u name
    row.cat
    。一个可能的缺点是,与字典不同,元组的内容是不能更改的。这正是我想要的。感谢您的澄清和回答!这正是我要找的。感谢您的澄清和回答!