Python – 提取数字字典值
有时,在使用Python字典时,我们可能会遇到一个问题,即只有当特定键索引是字符串形式的字典中的数值时,我们才需要提取。这在我们需要进行预处理的应用程序中可能是需要的。让我们讨论可以执行此任务的某些方式。
Input : test_dict = {‘best’: [‘5′, ’35’, ‘geeks’], ‘CS’: [1, 2, 3], ‘Gfg’: [‘124’, ‘4’, ‘8’]}
Output : [(‘5’, 1, ‘124’), (’35’, 2, ‘4’)]
Input : test_dict = {“Gfg” : [“4”], ‘best’ : [“6”], ‘CS’ : [1]}
Output : [(‘6’, 1, ‘4’)]
方法 #1:使用循环 + zip() + isdigit()
上述功能的组合可用于执行此任务。在此,我们使用 isdigit() 和 zip 检查数字字符串以执行键的累积。
# Python3 code to demonstrate working of
# Extract Numerical Dictionary values
# Using loop + zip() + isdigit()
# initializing dictionary
test_dict = {"Gfg" : ["34", "45", 'geeks'], 'is' : ["875", None, "15"], 'best' : ["98", 'abc', '12k']}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Extract Numerical Dictionary values
# Using loop + zip() + isdigit()
res = []
for a, b, c in zip(*test_dict.values()):
if a.isdigit() :
res.append((a, b, c))
# printing result
print("The Numerical values : " + str(res))
The original dictionary : {‘Gfg’: [’34’, ’45’, ‘geeks’], ‘best’: [’98’, ‘abc’, ’12k’], ‘is’: [‘875′, None, ’15’]}
The Numerical values : [(’34’, ’98’, ‘875’), (’45’, ‘abc’, None)]
方法 #2:使用列表理解 + zip() + isdigit()
上述功能的组合可以用来解决这个问题。在此,我们执行与上述方法类似的任务,但使用列表理解作为简写。
# Python3 code to demonstrate working of
# Extract Numerical Dictionary values
# Using list comprehension + zip() + isdigit()
# initializing dictionary
test_dict = {"Gfg" : ["34", "45", 'geeks'], 'is' : ["875", None, "15"], 'best' : ["98", 'abc', '12k']}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Extract Numerical Dictionary values
# Using list comprehension + zip() + isdigit()
res = [(a, b, c) for a, b, c in zip(*test_dict.values()) if a.isdigit()]
# printing result
print("The Numerical values : " + str(res))
The original dictionary : {‘Gfg’: [’34’, ’45’, ‘geeks’], ‘best’: [’98’, ‘abc’, ’12k’], ‘is’: [‘875′, None, ’15’]}
The Numerical values : [(’34’, ’98’, ‘875’), (’45’, ‘abc’, None)]