📜  Python – 记录中自定义列表中的值

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

Python – 记录中自定义列表中的值

有时,在处理Python记录时,我们可能会遇到需要从列表字典记录中的自定义列表中提取所有值的问题。这个问题可以应用于网络开发和学校编程等领域。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + get()
上述功能的组合可以用来解决这个问题。在此,我们使用列表推导执行遍历每个字典的任务,get() 用于获取字典值并处理非当前值。

# Python3 code to demonstrate working of 
# Values from custom List in Records
# Using list comprehension + get()
  
# initializing list
test_list = [{'name' : 'Gfg', 'id' : 1, 'Score' : 3},
             {'name' : 'is', 'id' : 4, 'Score' : 10},
             {'name' : 'Best', 'Score' : 12}]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing Get list 
get_list = ['name', 'id']
  
# Values from custom List in Records
# Using list comprehension + get()
res = [list(idx.get(sub) for sub in get_list) for idx in test_list]
  
# printing result 
print("All extracted values : " + str(res))
输出 :
The original list : [{'name': 'Gfg', 'id': 1, 'Score': 3}, {'name': 'is', 'id': 4, 'Score': 10}, {'name': 'Best', 'Score': 12}]
All extracted values : [['Gfg', 1], ['is', 4], ['Best', None]]

方法 #2:使用列表推导 + itemgetter() + intersection()
上述功能的组合可以用来解决这个问题。在此,我们使用 itemgetter() 和 intersection() 来获取检查目标列表和参数列表的值。无法处理不存在的键。

# Python3 code to demonstrate working of 
# Values from custom List in Records
# Using list comprehension + itemgetter() + intersection()
from operator import itemgetter
  
# initializing list
test_list = [{'name' : 'Gfg', 'id' : 1, 'Score' : 3},
             {'name' : 'is', 'id' : 4, 'Score' : 10}]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing Get list 
get_list = ['name', 'id']
  
# Values from custom List in Records
# Using list comprehension + itemgetter() + intersection()
res = [list(itemgetter(*set(get_list).intersection(idx))(idx)) for idx in test_list]
  
# printing result 
print("All extracted values : " + str(res))
输出 :
The original list : [{'name': 'Gfg', 'id': 1, 'Score': 3}, {'name': 'is', 'id': 4, 'Score': 10}]
All extracted values : [[1, 'Gfg'], [4, 'is']]