📜  Python – 将不均匀的列表转换为记录

📅  最后修改于: 2022-05-13 01:55:05.480000             🧑  作者: Mango

Python – 将不均匀的列表转换为记录

有时,在使用记录时,我们可能会遇到一个问题,即我们在一个列表中有键,而在另一个列表中有值。但有时,值可以按顺序排列多个,例如特定科目的分数或分数。这类问题可能发生在学校规划和发展领域。让我们讨论可以执行此任务的某些方式。

方法 #1:使用字典理解 + enumerate() + 列表切片
上述功能的组合可以用来解决这个问题。在此,我们使用字典理解进行迭代,并通过切片提取记录值来枚举并形成所需的结果。

# Python3 code to demonstrate working of 
# Convert Uneven Lists into Records
# Using dictionary comprehension + enumerate() + list slicing
  
# initializing lists
test_list1 = ['Nikhil', 'Akash', 'Akshat']
test_list2 = [5, 6, 7, 8, 2, 3, 12, 2, 10]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Convert Uneven Lists into Records
# Using dictionary comprehension + enumerate() + list slicing
temp = len(test_list2) // len(test_list1)
res = {key: test_list2[idx :: temp] for idx, key in enumerate(test_list1)}
  
# printing result 
print("The paired data dictionary : " + str(res)) 
输出 :

方法 #2:使用列表理解 + zip()
也可以使用上述功能解决此任务。在此,我们使用列表推导来构建累积分数列表。在最后一步中,我们使用 zip() 将两个列表绑定在一起。

# Python3 code to demonstrate working of 
# Convert Uneven Lists into Records
# Using list comprehension + zip()
  
# initializing lists
test_list1 = ['Nikhil', 'Akash', 'Akshat']
test_list2 = [5, 6, 7, 8, 2, 3, 12, 2, 10]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Convert Uneven Lists into Records
# Using list comprehension + zip()
temp = len(test_list2) // len(test_list1)
res = [test_list2[idx :: temp] for idx in range(0, len(test_list1))]
res = dict(zip(test_list1, res))
  
# printing result 
print("The paired data dictionary : " + str(res)) 
输出 :