【问题标题】:Issues appending to a list in python在python中附加到列表的问题
【发布时间】:2021-08-23 23:08:23
【问题描述】:

我有以下数据文件。

>| --- | | Adelaide | | --- | |  2021 | | --- | | Rnd | T | Opponent | Scoring | F | Scoring | A | R | M | W-D-L | Venue | Crowd |
> Date | | R1 | H | Geelong | 4.4 11.7 13.9 15.13  | 103 | 2.3 5.5 10.8
> 13.13  | 91 | W | 12 | 1-0-0 | Adelaide Oval |  26985 | Sat 20-Mar-2021 4:05 PM | | R2 | A | Sydney | 3.2 4.6 6.14 11.22  | 88 |
> 4.1 9.6 15.11 18.13  | 121 | L | -33 | 1-0-1 | S.C.G. |  23946 | Sat 27-Mar-2021 1:45 PM |

我创建了一个代码来将该数据操作为我想要的结果,即一个列表。当我在当前位置打印我的变量行时,它会正确打印。 但是,当我将列表行附加到另一个列表 my_array 时,我遇到了问题。我得到一个空列表返回。 我认为问题是我要附加的位置? 我的代码是这样的:

with open('adelaide.md', 'r') as f:
    my_array = []
    team = ''
    year = ''
    for line in f:
        row=[]
        line = line.strip()
        fields = line.split('|')
        num_fields = len(fields)
        if len(fields) == 3:
            val = fields[1].strip()
        if val.isnumeric():
            year = val
        elif val != '---':
            team = val   
        elif num_fields == 15:
            row.append(team)
            row.append(year)
            for i in range(1, 14):
                row.append(fields[i].strip())
            print(row)
    my_array.append(row)      

【问题讨论】:

  • 应该my_array.append(row) 在for循环内吗?
  • 您在每行的开头将行重置为一个空列表,然后将其重置。
  • 我做了,但它不起作用给我一个不同的输出
  • 你在这里犯了很多错误。例如,您仅在 num_fields 为 3 时为 yearteam 设置一个值(然后您只为它们设置一个,基于 fields[1]),但您在 num_fields 为 15 时使用这些值.您提供的示例数据中的所有行都没有 3 或 15 个字段。我只能建议您重新开始,并逐步进行(例如,第一步,在阅读时循环打印每一行,然后拆分并打印每个字段等)。

标签: python data-science


【解决方案1】:

您需要在 for 循环中追加行数组。

【讨论】:

  • 我试过了。仍然得到不同的输出。
  • 输出是什么?
【解决方案2】:

我认为最后一行应该在 for 循环内。您的代码可能附加了最后一个“行”列表。给它一个标签。

【讨论】:

  • 它产生不同的输出。
猜你喜欢
  • 2017-09-19
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2021-07-12
  • 2021-11-29
  • 1970-01-01
相关资源
最近更新 更多