Python - 列表中的嵌套记录列表
当前的问题是,我们必须借助 Python 创建一种算法,从给定的多个列表中获取嵌套记录列表。有时,我们需要在实际应用中出于某种原因组合给定的列表。因此,这个问题将有助于解决这些问题。
理解问题的逻辑
在这个问题中,我们将获得两个或更多列表,我们必须通过应用逻辑来组合并形成一个嵌套记录列表。因此,我们将使用不同的方法来完成这项任务。
首先,我们将使用 zip 方法压缩作为输入给出的所有列表,zip 方法将生成单个嵌套列表。其次,我们将使用带有 zip 方法的循环并创建一个新列表,该列表将包含给定输入列表的所有项目。第三,我们将使用用户定义函数来解决这个问题。
第一种方法 - 算法
在这种方法中,我们将使用 Python 的 zip 方法,该方法将根据列表项的索引合并列表。
步骤 1 - 初始化列表。在我们的代码中,我们将使用姓名、出生日期和出生地列表。
步骤 2 - 现在使用新列表作为 combined_lists,此列表将存储给定列表中的嵌套记录列表。使用 zip 方法,我们将通过传递 zip 方法内的所有列表来创建此列表。
步骤 3 - 打印 combined_lists 以显示输出。
示例
Name= ["John","Riya", "Amit"] DOB = ["11-09-1998", "17-02-1993", "02-05-2003"] Birth_Place = ["Delhi", "Mumbai", "Pune"] combine_lists = zip(Name, DOB, Birth_Place) print("所有列表的组合列表") print(list(combine_lists))
输出
所有列表的组合列表 [('John', '11-09-1998', 'Delhi'), ('Riya', '17-02-1993', 'Mumbai'), ('Amit', '02-05-2003', 'Pune')]
第二种方法 - 算法
这是另一种使用 for 循环和 zip 方法完成此任务的方法。
步骤 1 - 定义将用于组合以创建嵌套列表的 list1 和 list 2。
步骤2 − 使用 the_key 变量将键添加到新列表中,其值将为 id。
步骤 3 − 现在我们将创建一个新列表作为 nested_list,并通过为每个项目创建键来初始化它,然后再次使用 zip 方法在外部列表内创建一个嵌套列表。
步骤 4 − 获取 nested_list 后,我们将打印输入和输出列表的值。
示例
# 初始化列表 list1 = ['Tea', 'Coffee'] list2 = [['Black', 'Green', 'White'], ['Espresso', 'Latte', 'Cappuccino']] the_key = 'id' nested_list = {key : [{the_key : index} for index in val] for key, val in zip(list1, list2)} # 打印输入列表 print("第一个输入列表:" + str(list1)) print("第二个输入列表:" + str(list2)) # 在控制台上打印结果 print("构造的字典是:" + str(nested_list))
输出
第一个输入列表:['Tea', 'Coffee'] 第二个输入列表:[['Black', 'Green', 'White'], ['Espresso', 'Latte', 'Cappuccino']] 构造的字典是:{'Tea':[{'id':'Black'}, {'id':'Green'}, {'id':'White'}], 'Coffee':[{'id':'Espresso'}, {'id':'Latte'}, {'id': 'Cappuccino'}]}
第三种方法 - 算法
在这种方法中,我们将定义一个函数,使用多个输入列表生成嵌套列表。
步骤 1 − 首先定义名为 generate_nested_list 的函数,并将其中的所有输入列表作为参数传递。在这里,我们将使用星号运算符 (*),通过带有星号运算符的单个变量传递多个变量。
步骤 2 - 现在将空白列表定义为 combined_list,它将存储生成的嵌套列表。
步骤 3 - 现在我们将使用 for 循环组合列表,并将所有项目附加到 combined_list 中。
步骤 4 - 通过调用函数打印 combined_list,并在函数中传递所有列表。
示例
# 定义函数以生成嵌套列表 def generate_nested_list(*lists): combined_list = [] for lst in lists: combined_list.append(lst) return combined_list #初始化列表以生成嵌套列表 list1 = ['I', 'am', 'using'] list2 = ['Tutorials', 'point', 'to'] list3 = ['learn', 'Python', 'Programming'] nested_list = generate_nested_list(list1, list2, list3) print("创建的嵌套列表如下\n", nested_list)
输出
创建的嵌套列表如下 [['I', 'am', 'using'], ['Tutorials', 'point', 'to'], ['learn', 'Python', 'Programming']]
复杂度
从给定列表创建新的嵌套记录列表的时间复杂度为 O(n),这里 n 为所有列表中存在的项目总数。因为我们对所有方法都执行了简单的操作,这些方法需要线性时间才能完成任务。
结论
因为我们已经使用 Python 中的各种方法相继解决了给定的问题。所以在这里我们学习了如何使用简单的方法从给定的多个列表中组合或创建嵌套列表。当我们需要从给定的多个数据集合并和创建新的数据集时,此任务会很有帮助。