csv文件输入,算法计算距离

时间:2017-07-18 11:52:49

标签: python algorithm csv input python-3.6

您好我正在努力计算算法,该算法将计算操作员在仓库中所做的距离。它是根据包含位置集的选项列表计算的。我只是设置它们之间的距离。我创建了“迷你”算法版本,手动输入几个位置,但我的目标是超过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个星期,这是我在这里发表的第一篇文章,所以请放轻松我吧:)如果这篇文章是凌乱让我知道生病,试着更好地解释

2 个答案:

答案 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)

然后你可以遍历键吗?