为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个 for 循环返回一个空列表?

为什么这个 for 循环返回一个空列表?

喵喵时光机 2023-12-08 17:16:44
这就是我目前拥有的:messages = {  "Placeholder": 0,  "1": 48,  "2": 4,  "3": 31,  "4": 2}def pls():    messages_sorted = sorted(messages, key=messages.get, reverse=True)    for i in range(10):        output = []        try:            currp = str(messages_sorted[i])            if currp == "Placeholder":                print("PLACEHOLDER DETECTED")                return output            currpp = messages[currp]            output.append(f"{currp} has {currpp} and is Place {i+1}")            print(output)        except IndexError:            print("Index error")        except:            print("some other error")        return outputoutput = pls()output = str(output)output = output.replace("['", "")output = output.replace("']", "")print(output)我已经使用这个问题的答案将不同的输出制作为一个列表,但是当我运行它时,它返回一个空列表。当我删除以下部分时:if currp == "Placeholder":            print("PLACEHOLDER DETECTED")            return output我刚刚收到一堆索引错误。这print(output)在 for 循环内部,我得到了控制台中所需的内容(作为不同的字符串),但是我无法将其作为 List 或变量返回。我怎样才能做到这一点?
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

output=[]在你的for循环里面。output=[]因此,在每次迭代时,它的值都会重新初始化,您应该在 for 循环之前重试



查看完整回答
反对 回复 2023-12-08
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

当您返回时,您的output列表是空的,因为每次for loop重新启动时都会重置列表。


您的代码应如下所示:


  messages = {

  "Placeholder": 0,

  "1": 48,

  "2": 4,

  "3": 31,

  "4": 2

             }


def pls():

    messages_sorted = sorted(messages, key=messages.get, reverse=True)

    output = []

    for i in range(10):

        

        try:

            currp = str(messages_sorted[i])

            if currp == "Placeholder":

                print("PLACEHOLDER DETECTED")

                return output

            currpp = messages[currp]

            output.append(f"{currp} has {currpp} and is Place {i+1}")

            print(output)


        except IndexError:

            print("Index error")


        except:

            print("some other error")

    

    return output


output = pls()

output = str(output)

output = output.replace("['", "")

output = output.replace("']", "")

print(output)


查看完整回答
反对 回复 2023-12-08
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信