Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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
Python 命名列,然后使用名称而不是索引调用项_Python_Names - Fatal编程技术网

Python 命名列,然后使用名称而不是索引调用项

Python 命名列,然后使用名称而不是索引调用项,python,names,Python,Names,我有一个我将要分析的列列表。我想为一个列指定一个名称,然后为不同的任务遍历列中的行,而不是返回到特定的索引,例如数据[1][2]。如何为列指定名称,然后这是引用该列的正确格式 for x in range (len(data)): if [column_name][x] .... 我认为您要做的是将列存储在变量中,然后引用它,而不是总是使用下标。很简单: varName=data[columnName] 对于对该列的后续访问,varName[rowName]应该做到这一点我相信

我有一个我将要分析的列列表。我想为一个列指定一个名称,然后为不同的任务遍历列中的行,而不是返回到特定的索引,例如数据[1][2]。如何为列指定名称,然后这是引用该列的正确格式

for x in range (len(data)):  
    if [column_name][x] .... 

我认为您要做的是将列存储在变量中,然后引用它,而不是总是使用下标。很简单:

varName=data[columnName]

对于对该列的后续访问,
varName[rowName]
应该做到这一点

我相信您要做的是将列存储在变量中,然后引用它,而不是总是使用下标。很简单:

varName=data[columnName]

对于对该列的后续访问,
varName[rowName]
应该做到这一点

使用名称而不是整数访问数据的最简单方法是使用字典

data = {'pig':[1, 2], 'cow':[3, 4], 'dog':[5,6]}

if data in range(2):
    if data['dog'][1]==4:...

还有其他方法。例如,您可以创建一个类并重写
\uuu getitem\uuu
;或者,您可以将变量名分配给2d数组中的列号,如
dog=2
,等等;这完全取决于您想做什么。

使用名称而不是整数访问数据的最简单方法是使用字典

data = {'pig':[1, 2], 'cow':[3, 4], 'dog':[5,6]}

if data in range(2):
    if data['dog'][1]==4:...

还有其他方法。例如,您可以创建一个类并重写
\uuu getitem\uuu
;或者,您可以将变量名分配给2d数组中的列号,如
dog=2
,等等;这完全取决于你想做什么。

有很多不同的方法。如果在编写代码时知道名称和列之间的关联,那么目前最简单的方法是:

for row in data:
   (foo, bar, baz, bat) = row
…假设您不需要更新
(和
数据

如果需要更新行,将值复制到变量将不起作用。您需要通过项目的索引来操作这些项目。在这种情况下,aviraldg的方法最简单:

(foo, bar, baz, bat) = range(4)
for row in data:
   row[foo] = row[bar]
如果要通过包含列名称的字符串引用列,则需要将行复制到键为列名的字典中。然后,当您操作完字典后,您需要更新原始列表,或者用新列表替换它(这就是此代码所做的):


有很多不同的方法可以做到这一点。如果在编写代码时知道名称和列之间的关联,那么目前最简单的方法是:

for row in data:
   (foo, bar, baz, bat) = row
…假设您不需要更新
(和
数据

如果需要更新行,将值复制到变量将不起作用。您需要通过项目的索引来操作这些项目。在这种情况下,aviraldg的方法最简单:

(foo, bar, baz, bat) = range(4)
for row in data:
   row[foo] = row[bar]
如果要通过包含列名称的字符串引用列,则需要将行复制到键为列名的字典中。然后,当您操作完字典后,您需要更新原始列表,或者用新列表替换它(这就是此代码所做的):


这是用Python编写的吗?需要更多信息…是的,对不起,是python。我试图使用提供的解决方案,但运气不佳。我收到错误,说我不能用字符串索引。分配列名并成功引用它时遇到问题。数据来自txt文档。我的第二栏是ID,第三栏是重量,第四栏是身高。我如何命名它们并引用它们?这是用Python编写的吗?需要更多信息…是的,对不起,是python。我试图使用提供的解决方案,但运气不佳。我收到错误,说我不能用字符串索引。分配列名并成功引用它时遇到问题。数据来自txt文档。我的第二栏是ID,第三栏是重量,第四栏是身高。我如何命名和引用它们?