我有一列我將分析的列表。我不想回溯到諸如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