无法在python中向列表追加值

2024-10-02 04:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个文本文件中获取值,我已经读到了一个单独的列表中,我试图找到每个'E'在文本文件中的具体位置。每次使用以下方法打印列表时,它都是空的。我不知道我做错了什么。AGENTS是一个等于6的常数

for a in range(0,2,1):
    agentLocations.append([])
    for c in range(0,AGENTS,1):
        indices = [(i,x) for i, x in enumerate(aMaze) if x == 'E']
        agentLocations[a].append(0)
        print(indices)

将文件放入其自身列表的代码如下:

^{pr2}$

输入的文件看起来像

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~H                           ~
~                            ~
~                            ~
~                            ~
~#                           ~
~                            ~
~                            ~
~        E                   ~
~                            ~
~                            ~
~                            ~
~               ##### #######~
~      E        #E           ~
~               #           E~
~               #   ES       ~
~               E            ~
~                            ~
~                            ~
################

我正在查找列表中“E”字符的索引位置。在


Tags: 文件方法in列表for常数range文本文件
1条回答
网友
1楼 · 发布于 2024-10-02 04:24:48

我认为问题是你的惊奇没有被正确的建立。这就是为什么我认为。。。在

要调试与打印指示符问题相关的代码,首先需要详细说明列表理解,然后添加打印。在

Zile在数列狮子时发现了这一点。这就是你所期待的吗?这不是我所期望的。在

所以我就印上了《惊喜》。aMaze中有无数个空列表:事实上,输入文件中每个字符对应的行数。(aMaze.append ([])在内部循环内,该循环对文件中的每个字符执行行次)。在

这似乎不对(我得猜出是什么行)。在

因此,构建aMaze数组的逻辑看起来是错误的,但是很难判断出它有什么问题,因为很难确定其意图。例如,为什么要打印aMaze的行数行成功地打印出迷宫:很明显,有些东西是按照您的预期工作的,这使得您很难理解从您的角度来看哪些是不正确的。在

我的回答和建议是:重新审视一下你是如何构建aMaze的。如果你不能调试它,问一个新的问题,集中在什么给你带来麻烦。在

下面是调试会话后的最终完整代码。在

agentLocations = []
AGENTS=1
ROWS=20

aMaze = []

with open("foo.txt") as f:
    for line in f:
        for char in line:
            for r in range (0, ROWS, 1):
                aMaze.append ([])
                aMaze[r].append(char)
    print ("".join(aMaze[ROWS-1]))

print aMaze

for a in range(0,2,1):
    agentLocations.append([])
    for c in range(0,AGENTS,1):
#        indices = [(i,x) for i, x in enumerate(aMaze) if x == 'E']
        indices = []
        for i,x in enumerate(aMaze):
            print "i,x", i,x
            if x =='E':
                indicies.append((i,x))

        agentLocations[a].append(0)
        print(indices)

请注意,我必须猜测aMaze和agentLocations的行数和初始值是多少。我也看不到重复c循环AGENTS次的意义,所以我将AGENTS设置为1。在

这些并不难猜测,但这意味着你还没有掌握MVCE(根据我对你问题的评论)。它将帮助您在这里获得更好的帮助,掌握这一点,并且您会发现创建MVCE的行为通常会在这个过程中呈现出解决方案。在

相关问题 更多 >

    热门问题