您好我正在努力计算算法,该算法将计算操作员在仓库中所做的距离。它是根据包含位置集的选项列表计算的。我只是设置它们之间的距离。我创建了“迷你”算法版本,手动输入几个位置,但我的目标是超过100k位置的选项列表。我想从csv文件输入变量“picklist”和“LOCA” - “”“locations”“”。我已设法通过此代码完成此操作:
with open("movement warehouse.csv") as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
next(csv_reader)
for row in csv_reader:
picklist, number, LOCA, ITEM, DATE = row
print(row)
打印出来:
['4403821', '10', 'E-11-GR', 'NSWH-828031C', '20-Jun-17']
['4403824', '10', 'I-15-BL', 'CISH-800-100174-01', '20-Jun-17']
['4403825', '10', 'I-02-ER', 'CISH-800-100175-01', '20-Jun-17']
['4403825', '20', 'G-21-FR', 'CISH-700-101709-01', '20-Jun-17']
(它只是其中的一部分,但你明白了)
所以第一列是选项列表的数量,第三列是位置。 其他人对我来说并不重要。 最后我的问题是: 我怎样才能使用特定的“数据”单元格:例如:我想查看:
if first picklist = second picklist: #thats possible
distance += (distance between location'E-11-GR'and 'I-15-BL'
else:
skip to next location #or whatever
你明白了吗?如何按列中的行(来自csv文件)浏览数据
PS .: 我是初学者,现在在python工作了3个星期,这是我在这里发表的第一篇文章,所以请放轻松我吧:)如果这篇文章是凌乱让我知道生病,试着更好地解释
答案 0 :(得分:1)
您想要访问数组索引。
您获得的每一行都将以数组形式出现:
my_row[0]
你可以先说:
bar
数组从零开始,因此my_row[2]
位于my_row[5]
。
如果你要求一个不在数组中的术语(all_rows = []
for row in csv_reader:
all_rows.append(row)
'To get the first row:
all_rows[0]
'To get the first column of the first row:
all_rows[0][0]
),它会抛出一个错误,所以在你要求之前确保数据存在。
代码的结构可能如下所示:
{{1}}
答案 1 :(得分:0)
我认为用词典来解决这个问题是一种优雅的方式。
假设选项列表是我们的参考点(?)
master_dict = defaultdict(list) #sets up a dictionary with a list as the default value
for row in csv:
value = dict(zip(['number', 'LOCA', 'ITEM', 'DATE'], row[1:]))
master_dict[row[0]].append(value)
然后你可以遍历键吗?