Python中的字典推导
在本教程中,我们将讨论Python中的字典推导,并学习如何使用它以及理解一些示例。
在Python中,字典是用户可以将数据存储在一对 键/值 中的数据类型。
示例:
dict1 = {"x": 12, "r": 31, "l": 1, "v": 54}
什么是字典推导
字典推导是用于将一个字典转换为另一个字典的方法。在将字典转换为另一个字典的过程中,用户还可以将原始字典的数据包含在新字典中,并根据需要逐个转移数据。
与列表推导类似,Python 也允许用户进行字典推导。用户可以使用内置方法的简单表达式来创建字典。
字典推导的形式如下:
{key: 'value' (value for (key, value) in iterable form)
示例1:
# let's assume the user have two lists named Key and values
key = ['p', 'q', 'r', 's', 't']
value = [56, 67, 43, 12, 6]
# the following method is used for comprehensiong the dictionary
user_Dict = { X:Y for (X,Y) in zip(key, value)}
print ("user_Dict: ", user_Dict)
输出:
user_Dict: {'p': 56, 'q': 67, 'r': 43, 's': 12, 't': 6}
示例2:
# The user can also user the below method
key_1 = ['j', 'k', 'l', 'm', 'n', 'o']
value_1 = [34, 54, 13, 76, 98, 74]
user_Dict_1 = dict (zip (key_1, value_1))
print ("user_Dict_1: ", user_Dict_1)
输出:
user_Dict_1: {'j': 34, 'k': 54, 'l': 13, 'm': 76, 'n': 98, 'o': 74}
用户还可以使用推导式从列表中创建字典。
示例3:
user_Dict2 = {q: q**2 for q in [56, 67, 43, 12, 6]}
print ("user_Dict2: ", user_Dict2)
输出:
user_Dict2: {56: 3136, 67: 4489, 43: 1849, 12: 144, 6: 36}
示例4:
user_Dict3 = {q.upper(): q*3 for q in 'JavaTpoint is the Best learning Website'}
print ("user_Dict: ", user_Dict3)
输出:
user_Dict: {'J': 'JJJ', 'A': 'aaa', 'V': 'vvv', 'T': 'ttt', 'P': 'ppp', 'O': 'ooo', 'I': 'iii', 'N': 'nnn', ' ': ' ', 'S': 'sss', 'H': 'hhh', 'E': 'eee', 'B': 'bbb', 'L': 'lll', 'R': 'rrr', 'G': 'ggg', 'W': 'WWW'}
用户还可以使用if和else语句来创建字典推导。
示例5:
user_dict4 = {q: q**3 for q in range (30) if q**3 % 4 == 0}
print ("user_dict4: ", user_dict4)
输出:
user_dict4: {0: 0, 2: 8, 4: 64, 6: 216, 8: 512, 10: 1000, 12: 1728, 14: 2744, 16: 4096, 18: 5832, 20: 8000, 22: 10648, 24: 13824, 26: 17576, 28: 21952}
示例6:
user_dict5 = dict()
for numm in range(3, 20):
user_dict5 [numm] = numm*numm
print("user_dict5: ", user_dict5)
输出:
user_dict5: {3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
如何使用字典理解
让我们来理解下面的示例。
示例
#food_item price are in dollars
old_price_1 = {'milk per litter': 2.12, 'coffee per cup': 3.60, 'bread per packet': 1.51}
print ("old_price_1: ", old_price_1)
convert_dollar_to_pound = 0.71
new_price_1 = {food_item: values*convert_dollar_to_pound for (food_item, values) in old_price_1.items()}
print ("new_price_1: ", new_price_1)
在上面的示例中,用户使用了字典解析将美元值转换为英镑值。
输出:
old_price_1: {'milk per litter': 2.12, 'coffee per cup': 3.6, 'bread per packet': 1.51}
new_price_1: {'milk per litter': 1.5052, 'coffee per cup': 2.556, 'bread per packet': 1.0721}
结论
在本教程中,我们通过使用不同的参数和方法,解释了在Python中创建字典推导的不同方法。我们还展示了用户如何使用字典推导将美元值转换为英镑值的示例。