我有一列我将分析的列表。我不想回溯到诸如data [1] [2]这样的特定索引,而是想为列指定一个名称,然后循环遍历列的不同任务。我如何为列指定一个名称,然后这是返回它的正确格式?命名一列,然后用名称而不是索引调用项目
for x in range (len(data)):
if [column_name][x] ....
我有一列我将分析的列表。我不想回溯到诸如data [1] [2]这样的特定索引,而是想为列指定一个名称,然后循环遍历列的不同任务。我如何为列指定一个名称,然后这是返回它的正确格式?命名一列,然后用名称而不是索引调用项目
for x in range (len(data)):
if [column_name][x] ....
我相信你想要做的就是在变量中存储一列,然后引用它,而不是始终使用下标。很简单:
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:...
还有其他方法。例如,您可以创建课程并覆盖__getitem__
;或者你可以将变量名称分配给二维数组中的列号,如dog=2
等;这一切都取决于你想要做什么。
有很多不同的方式来做到这一点。如果你知道你写代码的时候名字和列之间的关联,目前最简单的方法是这样的:
for row in data:
(foo, bar, baz, bat) = row
...假设你并不需要更新row
(和data
)。
如果您需要更新该行,将值复制到变量将不起作用。你需要通过索引来操作这些项目。在这种情况下,aviraldg的做法是简单的:
(foo, bar, baz, bat) = range(4)
for row in data:
row[foo] = row[bar]
如果你想通过一个字符串包含他们的名字来引用列,则需要行复制到字典,字典的关键是列名。然后,当你完成操作的字典,你需要更新原有的列表,或用新的替换它(这是该代码做什么):
columns = ("foo", "bar", "baz", "bat")
for i in range(len(data)):
d = dict(zip(columns, data[i]))
d["foo"] = d["bar"]
data[i] = [d[col] for col in columns]
这是在Python?需要更多信息... – 2009-10-25 03:10:29
是的,对不起,它是python。我试图使用提供的解决方案,但没有运气。我收到错误,说我不能用字符串进行索引。我无法分配列名称,然后成功引用它。数据来自txt文档。我的第二列是ID,第三列是体重,第四列是身高。我如何命名它们并返回? – 2009-10-26 02:17:46