Python 气泡排序后不同的阵列是否会同步?
作为一项学校作业,我必须创建一个Python应用程序,允许用户在X数量的人身上添加个人信息。也就是说,该程序允许用户选择许多选项,其中一个选项是按照信息的字母顺序对人员列表进行排序,而无需使用sort()或quicksort()函数。我唯一要做的就是使用气泡排序法 最初,我的想法是为不同的数据类型创建数组,例如: 姓氏=[] 名字=[] 出生日期=[] 性别=[] 但问题是,如果我对姓氏应用冒泡排序,其他数组信息如何与新顺序同步?比如每个人的信息都会混淆吗 更新: 所以我决定采用person1=[“name1”,“date\u of\u birth1”,“gender1”…]的格式 然后将其添加到另一个列表中Python 气泡排序后不同的阵列是否会同步?,python,arrays,directory,bubble-sort,phonebook,Python,Arrays,Directory,Bubble Sort,Phonebook,作为一项学校作业,我必须创建一个Python应用程序,允许用户在X数量的人身上添加个人信息。也就是说,该程序允许用户选择许多选项,其中一个选项是按照信息的字母顺序对人员列表进行排序,而无需使用sort()或quicksort()函数。我唯一要做的就是使用气泡排序法 最初,我的想法是为不同的数据类型创建数组,例如: 姓氏=[] 名字=[] 出生日期=[] 性别=[] 但问题是,如果我对姓氏应用冒泡排序,其他数组信息如何与新顺序同步?比如每个人的信息都会混淆吗 更新: 所以我决定采用person1=
addressbook=[“person1”、“person2”、“person3”、…]我会用字典代替每个人的列表。例如:
person1 = {
"name":"Bao Tang",
"date_of_birth":"2000/01/01",
"gender":"male"
}
您可以将词典直接存储到列表中:
persons = [
{
"name":"Bao Tang",
"date_of_birth":"2000/01/01",
"gender":"male"
},
{
"name":"Name 2",
"date_of_birth":"2001/02/03",
"gender":"female"
}
]
然后可以通过以下方式访问记录及其信息:
persons[index]["name"]
persons[index]["date_of_birth"]
persons[index]["gender"]
persons[0]["gender"] # based on the example list above, would return the value "male"
对于排序,您可以向函数中添加一个“key”参数,并使用该参数指定要排序的信息:
def bubble_sort(arr, key):
n = len(arr)
for i in range(n - 1):
for j in range(0, n - i - 1):
if arr[j][key] > arr[j + 1][key]: # we compare keys of 2 records
arr[j], arr[j + 1] = arr[j + 1], arr[j] # we swap the whole record
# example call
bubble_sort(persons, "date_of_birth")
注意:即使它非常简单并且应该可以工作,这都是未经测试的代码。小心使用 它们不会神奇地同步。当您在
姓氏中交换两个项目时,您也应该在其他数组中交换完全相同的项目。我非常感谢您为此抽出时间。我没有提到我不能使用字典,请原谅。