希望有人可以提供帮助。我主要在Java工作并且有一个我必须在Python中完成的任务,我几乎一无所知。
我有一个CSV文件,我正在阅读并设法创建每个项目的列表或列表。每行代表一个thingID,请求的时间,请求的时间,填充所需的时间。我需要将它们放入优先级队列,运行它们并打印结果。虽然我没有比下面显示的更远,因为我显然不知道函数是如何工作的。整个自我和__init__
的东西让我感到困惑,以及这种语言运作所需的一切。
def main():
with open('things.csv', 'r') as file:
reader = csv.reader(file)
index = 0
for row in reader:
print(row)
main()
这给了我一个像这样的数组列表:
['Thing1', '0', '1', '4']
['Thing2', '1', '1', '3']
我有另一个Things.py(我不应该在单个.py中有多个类),我有:
class Things(object):
def __init___(self, row, thingInfo):
self.row = row
self.thingInfo = thingInfo
我尝试在def
下创建另一个__init__
但我无能为力。
我试图将列表对象的不同部分分开,这样我就可以对它的各个部分进行操作,如ID,请求的时间等,但不知道如何做到这一点。我尝试了各种各样的东西,但得到了类型错误的属性错误。我完全失败了。任何帮助将不胜感激。我只需要向正确的方向迈出几步,因为我已经完全碰到了墙。
答案 0 :(得分:0)
希望此模板有所帮助:
{{1}}
答案 1 :(得分:0)
列表拆包可能是您想要的:
class Things(object):
def doSomething(self):
thing_id, time_of_request, time_requested, time_needed_to_fill = self.row
# do whatever u want with the above variables
答案 2 :(得分:0)
您可以通过像这样索引它们(与Java中相同)明确地将传递给Things.__init__()
的列表对象的不同部分分开:
class Things(object):
def __init___(self, row, thingInfo):
self.row = row
self.id = thingInfo[0]
self.time_requested = thingInfo[1]
self.another_thing = thingInfo[2]
# etc ...