Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我收到一个类型错误,说我传递了一个字符串,但我的列表是一个int_Python_Sorting_Typeerror - Fatal编程技术网

Python 我收到一个类型错误,说我传递了一个字符串,但我的列表是一个int

Python 我收到一个类型错误,说我传递了一个字符串,但我的列表是一个int,python,sorting,typeerror,Python,Sorting,Typeerror,我需要在排序部分的帮助。我可以理解为什么它在切片后没有得到排序,并且在映射列表到int之后,给出了相同的错误。请帮助我 def ele(arr): for i in range(1,len(arr)-1): k=i-1 l=i+1 m=0 a=[]*0 b=[]*0 print(*arr) if(k!=0): a=arr[-1:k]

我需要在排序部分的帮助。我可以理解为什么它在切片后没有得到排序,并且在映射列表到int之后,给出了相同的错误。请帮助我

def ele(arr):
    for i in range(1,len(arr)-1):
        k=i-1
        l=i+1
        m=0
        a=[]*0
        b=[]*0
        print(*arr)
        if(k!=0):
            a=arr[-1:k]
            a=list(map(int,a))
            a.sort(reverse="True")
            print(*a)
        else:
            a.append(arr[k])
        #print(*a)
        if(l!=len(arr)-1):
            b=arr[l:]
            b=list(map(int,b))
            b.sort(reverse="True")
            print(*b)
        else:
            b.append(arr[l])
        if(b[0]<arr[i] and arr[i]>a[0]):
            m=1
            print(arr[i])
            break
    if(m==0):
        print(-1)
t=int(input())
for i in range(0,t):
    n=int(input())
    arr=list(map(int,input().split()))
    ele(arr)
    ```

 File "main.py", line 28, in ele                                                              
    b.sort(reverse="True")                                                                     
TypeError: an integer is required (got type str)
def ele(arr):
对于范围(1,len(arr)-1)内的i:
k=i-1
l=i+1
m=0
a=[]*0
b=[]*0
打印(*arr)
如果(k!=0):
a=arr[-1:k]
a=列表(映射(int,a))
a、 排序(reverse=“True”)
打印(*a)
其他:
a、 追加(arr[k])
#打印(*a)
如果(l!=len(arr)-1:
b=arr[l:]
b=列表(映射(int,b))
b、 排序(reverse=“True”)
打印(*b)
其他:
b、 追加(arr[l])
如果(b[0]a[0]):
m=1
打印(arr[i])
打破
如果(m==0):
打印(-1)
t=int(输入())
对于范围(0,t)内的i:
n=int(输入())
arr=list(映射(int,input().split())
ele(arr)
```
文件“main.py”,第28行,在ele中
b、 排序(reverse=“True”)
TypeError:需要一个整数(获取类型str)

反向参数是一个布尔参数,您应该使用
True
而不是
“True”

def ele(arr):
对于范围(1,len(arr)-1)内的i:
k=i-1
l=i+1
m=0
a=[]*0
b=[]*0
打印(*arr)
如果(k!=0):
a=arr[-1:k]
a=列表(映射(int,a))
a、 排序(反向=真)
打印(*a)
其他:
a、 追加(arr[k])
#打印(*a)
如果(l!=len(arr)-1:
b=arr[l:]
b=列表(映射(int,b))
b、 排序(反向=真)
打印(*b)
其他:
b、 追加(arr[l])
如果(b[0]a[0]):
m=1
打印(arr[i])
打破

如果(m==0):#
b.sort(reverse=True)
如果它说
TypeError:boolean是必需的(got-type str)
但是bools无论如何都是int奇怪的是,reverse实际上接受任何看起来的整数,例如
lst.sort(reverse=3)
——我很惊讶的是它不只接受bools?还有,为了说明明显的情况(如果@Chris_Rands或OP遗漏了它),
a.sort(reverse=“True”)
也需要更改为
a.sort(reverse=True)
def ele(arr):
    for i in range(1,len(arr)-1):
        k=i-1
        l=i+1
        m=0
        a=[]*0
        b=[]*0
        print(*arr)
        if(k!=0):
            a=arr[-1:k]
            a=list(map(int,a))
            a.sort(reverse=True)
            print(*a)
        else:
            a.append(arr[k])
        #print(*a)
        if(l!=len(arr)-1):
            b=arr[l:]
            b=list(map(int,b))
            b.sort(reverse=True)
            print(*b)
        else:
            b.append(arr[l])
        if(b[0]<arr[i] and arr[i]>a[0]):
            m=1
            print(arr[i])
            break
        if(m==0): # <-- this should be indented too
            print(-1)
t=int(input())
for i in range(0,t):
    n=int(input())
    arr=list(map(int,input().split()))
    ele(arr)