Python 数组中两个元素的一部分

Python 数组中两个元素的一部分,python,Python,下面是python代码: def addition(list1,x): left = 0 list1 = list1.sort() print list1 right = len(list1)- 1 while left < right: if list1[left] + list1[right] > x: right =right -1 elif list1[left] + l

下面是python代码:

def addition(list1,x):

    left  = 0

    list1 = list1.sort()
    print list1
    right  = len(list1)- 1
    while left < right:
        if list1[left] + list1[right] > x:
            right =right -1
        elif  list1[left] + list1[right] <x:
            left =left +1

        else:
            return True
    return False


data_1 = [3,4,5,2,1,10,2,5,33]
print "output"
print addition(data_1,6)
在上面的代码中有一个错误。你能帮我一下吗?

列表。排序将列表排序到位,但不返回任何值

您应该使用list1.sort,而不是list1=list1.sort。

.sort就地排序并返回None,这当然没有属性,因此会出现错误

改用:

# This sorts the list in-place, so don't assign the result to a variable.
list1.sort()


如果您告诉我们在right=lenlist1-1上看到的错误,会有所帮助,因为len不属于none Objects的一部分。请用sortedlist1替换list1.sort
# This function returns a new list, so you can assign it to a variable.
list1 = sorted(list1)