列表未按 BubbleSort 排序
List not being sorted by BubbleSort
有一个冒泡排序程序,我希望将电子邮件按字母顺序排序。但是,当我 运行 带有我想排序的列表的程序时,我收到错误 TypeError: 'tuple' object does not support item assignment。
这是代码:
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)
程序对没有 'Passwords' 的列表进行排序。我如何将代码获取到 运行 并成功对其进行排序。
此代码将 运行 并对列表进行排序。但是我不知道这是不是你想要的方式。
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)
假设您的冒泡排序算法工作正常,您的问题是您无法在 tuple
中分配项目,当尝试 logindata[count] = logindata[count+1]
时,您可以将 logindata
更改为 list
然后 return tuple
的 logindata
,你还应该捕获 returned logindata
然后打印它,整个代码如下所示:
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'])
有一个冒泡排序程序,我希望将电子邮件按字母顺序排序。但是,当我 运行 带有我想排序的列表的程序时,我收到错误 TypeError: 'tuple' object does not support item assignment。 这是代码:
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)
程序对没有 'Passwords' 的列表进行排序。我如何将代码获取到 运行 并成功对其进行排序。
此代码将 运行 并对列表进行排序。但是我不知道这是不是你想要的方式。
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)
假设您的冒泡排序算法工作正常,您的问题是您无法在 tuple
中分配项目,当尝试 logindata[count] = logindata[count+1]
时,您可以将 logindata
更改为 list
然后 return tuple
的 logindata
,你还应该捕获 returned logindata
然后打印它,整个代码如下所示:
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'])