Python 未按BubbleSort排序的列表
有一个bubblesort程序,我希望电子邮件按字母顺序排序。但是,当我使用我想要排序的列表运行程序时,我得到错误TypeError:“tuple”对象不支持项分配。 代码如下: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):
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
函数捕获返回值。捕获返回值并打印它。