【问题标题】:Add elements to list in for loop - Nested loop在 for 循环中添加元素到列表 - 嵌套循环
【发布时间】:2016-08-25 06:33:42
【问题描述】:

http://pastebin.com/zTMwBKUn

我在创建将由我的 django 代码读取的列表时遇到问题。这是一个 python 问题,而不是 django。

for line in reader:
    date =  datetime.datetime.strptime(line[0], '%m/%d/%Y').date()

每一行 [0] 都必须转换为一个日期对象,尽管 db 模型中的验证设置应该允许它,但我需要将所有空白值设为零才能将其导入。

    for entry in line:
        row = []
        entry = make_int(entry)
        row.append(entry)

这是输出:

['4/24/2016'] - This needs to be replaced with the 'date' vairable from pastebin
['A320']
['623NK']
['LAX-ORD']
['1']
['4.4']
[0]
[0]
[0]
[0]
[0]
['4.4']
['4.4']
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]
[0]

输出需要如下所示:

[date, A320, 623NK, LAX-ORD, etc... ]

这样就可以被下面的django代码读取了:

    # f = Flight(
    #   date = date,
    #   aircraft = row[1],
    #   aircraft_ident = row[2],
    #   route = row[3],
    #   legs = row[4],
    #   duration = row[5],
    #   landings_day = int(row[6]),
    #   landings_night = row[7],
    #   night = row[8],
    #   instrument = row[9], 
    #   approaches = row[10],
    #   cross_country = row[11], 
    #   second_in_command = row[12], 
    #   pilot_in_command = row[13], 
    #   simulated_instrument = row[14],
    #   instructor = row[15], 
    #   dual = row[16], 
    #   remarks = row[17], 
    #   simulator = row[18], 
    #   solo = row[19], 
    #   flight_cost = row[20],
    #   expenses = row[21],
    #   )

    # f.save()

【问题讨论】:

标签: django python-3.x


【解决方案1】:

每次为每个元素创建新数组时,因为您已在内部 for 循环中声明数组,所以必须为每个 line 启动数组,因此它应该在外部 for 循环内部但在内部 for 循环外部。

for line in reader:
    row = []
    date =  datetime.datetime.strptime(line[0], '%m/%d/%Y').date()
    row.append(date)
    for entry in line[1:]:
        entry = make_int(entry)
        row.append(entry)

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 1970-01-01
    • 2016-06-01
    • 2015-02-14
    • 2015-01-28
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多