Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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 未按BubbleSort排序的列表_Python_List_Sorting_Tuples_Bubble Sort - Fatal编程技术网

Python 未按BubbleSort排序的列表

Python 未按BubbleSort排序的列表,python,list,sorting,tuples,bubble-sort,Python,List,Sorting,Tuples,Bubble Sort,有一个bubblesort程序,我希望电子邮件按字母顺序排序。但是,当我使用我想要排序的列表运行程序时,我得到错误TypeError:“tuple”对象不支持项分配。 代码如下: def BubbleSort(logindata): NoSwaps = 1 N = len(logindata) while NoSwaps == 1: Count = 1 NoSwaps = 0 for Count in range(N-1):

有一个bubblesort程序,我希望电子邮件按字母顺序排序。但是,当我使用我想要排序的列表运行程序时,我得到错误TypeError:“tuple”对象不支持项分配。 代码如下:

def BubbleSort(logindata):
    NoSwaps = 1
    N = len(logindata)
    while NoSwaps == 1:
        Count = 1
        NoSwaps = 0
        for Count in range(N-1):
            if logindata[Count] > logindata[Count+1]:
                temp = logindata[Count]
                logindata[Count] = logindata[Count+1]
                logindata[Count+1]=temp
                NoSwaps=1
    return logindata

if __name__ == "__main__":
    logindata=["tom@gmail.com","Password1"],["Harry","Password2"],["Jake","Password3"]
    BubbleSort(logindata)
    print(logindata)

该程序对没有“密码”的列表进行排序。如何让代码运行并成功排序。

此代码将运行并排序列表。但是我不知道这是否是你想要的方式

def BubbleSort(logindata):
    NoSwaps = 1
    N = len(logindata)

    while NoSwaps == 1:
        Count = 1
        NoSwaps = 0

        for Count in range(N-1):
            if logindata[Count][0] > logindata[Count+1][0]:
                temp = logindata[Count][0]
                logindata[Count][0] = logindata[Count+1][0]
                logindata[Count+1][0] =temp
                NoSwaps=1
                temp = logindata[Count][1]
                logindata[Count][1] = logindata[Count+1][1]
                logindata[Count+1][1] =temp
    return logindata

if __name__ == "__main__":
    logindata=["Adam","Password1"],["Harry","Password2"],["Cake","Password3"]
    BubbleSort(logindata)
    print(logindata)

此代码将运行并对列表进行排序。但是我不知道这是否是你想要的方式

def BubbleSort(logindata):
    NoSwaps = 1
    N = len(logindata)

    while NoSwaps == 1:
        Count = 1
        NoSwaps = 0

        for Count in range(N-1):
            if logindata[Count][0] > logindata[Count+1][0]:
                temp = logindata[Count][0]
                logindata[Count][0] = logindata[Count+1][0]
                logindata[Count+1][0] =temp
                NoSwaps=1
                temp = logindata[Count][1]
                logindata[Count][1] = logindata[Count+1][1]
                logindata[Count+1][1] =temp
    return logindata

if __name__ == "__main__":
    logindata=["Adam","Password1"],["Harry","Password2"],["Cake","Password3"]
    BubbleSort(logindata)
    print(logindata)

假设冒泡排序算法工作正常,您的问题是无法在
元组中分配项
,当尝试
loginda[count]=loginda[count+1]
时,您可以将
loginda
更改为
列表
,然后返回
loginda
元组
,您还应该捕获返回的
loginda
,然后将其打印出来,整个代码如下所示:

def BubbleSort(logindata):
    NoSwaps = 1
    N = len(logindata)
    logindata = list(logindata)
    while NoSwaps == 1:
        Count = 1
        NoSwaps = 0
        for Count in range(N-1):
            if logindata[Count] > logindata[Count+1]:
                temp = logindata[Count]
                logindata[Count] = logindata[Count+1]
                logindata[Count+1]=temp
                NoSwaps=1
    return tuple(logindata)

if __name__ == "__main__":
    logindata=["tom@gmail.com","Password1"],["Harry","Password2"],["Jake","Password3"]
    logindata = BubbleSort(logindata)
    print(logindata)
    #(['Harry', 'Password2'], ['Jake', 'Password3'], ['tom@gmail.com', 'Password1'])

假设冒泡排序算法工作正常,您的问题是无法在
元组中分配项
,当尝试
loginda[count]=loginda[count+1]
时,您可以将
loginda
更改为
列表
,然后返回
loginda
元组
,您还应该捕获返回的
loginda
,然后将其打印出来,整个代码如下所示:

def BubbleSort(logindata):
    NoSwaps = 1
    N = len(logindata)
    logindata = list(logindata)
    while NoSwaps == 1:
        Count = 1
        NoSwaps = 0
        for Count in range(N-1):
            if logindata[Count] > logindata[Count+1]:
                temp = logindata[Count]
                logindata[Count] = logindata[Count+1]
                logindata[Count+1]=temp
                NoSwaps=1
    return tuple(logindata)

if __name__ == "__main__":
    logindata=["tom@gmail.com","Password1"],["Harry","Password2"],["Jake","Password3"]
    logindata = BubbleSort(logindata)
    print(logindata)
    #(['Harry', 'Password2'], ['Jake', 'Password3'], ['tom@gmail.com', 'Password1'])

您没有从
BubbleSort
函数捕获返回值。捕获并打印返回值。您不是从
BubbleSort
函数捕获返回值。捕获返回值并打印它。