Shinone+const 2022-10-22 21:23 采纳率: 92%
浏览 24
已结题

为什么我输出的是空列表

如题所示
问题:

img

我的代码:


animals=[]
while True:
    inputthing = input().split()
    if inputthing :
        break
    else:
        animals.append(inputthing)
for i in range(len(animals)):
    name = animals[i][0]
    if 't' in animals[i][1]:
        amount = float(animals[i][1][:-1])*1000
       
        weight = animals[i][1]
    else:
        amount = float(animals[i][1][:-2])
        
        weight = animals[i][1]
        animals[i] = [name,weight,amount]
animals = sorted(animals,key = lambda animal:animal[2])
for i in range(len(animals)):
    animals[i] = [animals[i].name,animals[i].weight]
print(animals)



运行结果:
【当然输入不止图中所示】

img

  • 写回答

1条回答 默认 最新

  • [小G] 2022-10-22 21:54
    关注

    没有输入的时候判断方法不正确,可以参考

    animals = []
    while True:
        inputthing = input().split()
        if len(inputthing) == 0:  # 没有输入的时候
            break
        else:
            animals.append(inputthing)
            
    def getWeight(animal):
        w = animal[1]
        if 't' in w:
            return float(w[:-1])*1000
        return float(w[:-2])
    
    animals = sorted(animals, key=getWeight)
    
    print(animals)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月31日
  • 已采纳回答 10月23日
  • 创建了问题 10月22日