首页 > 解决方案 > list.remove(x) x 似乎在列表中但未找到

问题描述

所以在VSCode中,我收到了这个错误......

在此处输入图像描述

给定输入

2

21 22

我们有变量说

最佳选择 = '22'

一个:['21','22']

但是, a.remove(best_choice) 返回错误。我完全困惑......请帮忙。我在堆栈上检查了这个问题,发现在遍历列表时 remove() 不起作用,所以我将循环更改为 while(True)。但是,我仍然收到同样的错误。

这是代码:

import sys

def best_option(a):
    iterator = 0
    while(len(a)>1):
        previous_best_digit = 0
        current_best_digit = 0
        best_short_option = []
        return_list = []
        for item in a:
            if len(item)-1 < iterator:
                char_previous =  item[iterator-1:iterator]
                dig_previous = ord(char_previous)
                previous_best_digit = dig_previous
                best_short_option = item
                continue
            char = item[iterator:iterator+1]
            dig = ord(char)
            if dig > current_best_digit:
                current_best_digit = dig
                return_list.clear()
                return_list.append(item)
            elif dig == current_best_digit:
                return_list.append(item)
        if (current_best_digit < previous_best_digit):
            return_list.clear()
            return_list.append(best_short_option)
        a = return_list 
        iterator+=1
    return a


def largest_number(a):

    #write your code here
    res = ""
    while (True):
        best_choice = best_option(a) 
        print(best_choice)
        a.remove(best_choice)
        res += best_choice
        if (len(a)==1):
            break

    res.append(a)
    print(res)
    return res

if __name__ == '__main__':
    input = sys.stdin.read()
    data = input.split()
    a = data[1:]
    print(largest_number(a))
   

它的目的是从字符串列表中创建一个具有最大可能值的字符串。

标签: pythonlist

解决方案


best_choice['22'],不是'22'


推荐阅读