Python 气泡排序后不同的阵列是否会同步?

Python 气泡排序后不同的阵列是否会同步?,python,arrays,directory,bubble-sort,phonebook,Python,Arrays,Directory,Bubble Sort,Phonebook,作为一项学校作业,我必须创建一个Python应用程序,允许用户在X数量的人身上添加个人信息。也就是说,该程序允许用户选择许多选项,其中一个选项是按照信息的字母顺序对人员列表进行排序,而无需使用sort()或quicksort()函数。我唯一要做的就是使用气泡排序法 最初,我的想法是为不同的数据类型创建数组,例如: 姓氏=[] 名字=[] 出生日期=[] 性别=[] 但问题是,如果我对姓氏应用冒泡排序,其他数组信息如何与新顺序同步?比如每个人的信息都会混淆吗 更新: 所以我决定采用person1=

作为一项学校作业,我必须创建一个Python应用程序,允许用户在X数量的人身上添加个人信息。也就是说,该程序允许用户选择许多选项,其中一个选项是按照信息的字母顺序对人员列表进行排序,而无需使用sort()或quicksort()函数。我唯一要做的就是使用气泡排序法

最初,我的想法是为不同的数据类型创建数组,例如:

姓氏=[]

名字=[]

出生日期=[]

性别=[]

但问题是,如果我对姓氏应用冒泡排序,其他数组信息如何与新顺序同步?比如每个人的信息都会混淆吗

更新:

所以我决定采用person1=[“name1”,“date\u of\u birth1”,“gender1”…]的格式

然后将其添加到另一个列表中


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")

注意:即使它非常简单并且应该可以工作,这都是未经测试的代码。小心使用

它们不会神奇地同步。当您在
姓氏中交换两个项目时,您也应该在其他数组中交换完全相同的项目。我非常感谢您为此抽出时间。我没有提到我不能使用字典,请原谅。