字典理解中的条件
Conditionals in dict comprehensions
我正在尝试简化大量字典的修改,这些字典会大量更改数字(从日期字符串到 python 日期,小数到浮点数等),我希望能够确定是否需要更改某些内容(也许我只想更改一些数字,而不是日期):
def transform_dictionary(dictionary, callback, qualification_callback=None):
if qualification_callback:
dictionary.update({k: callback(v) for k, v in dictionary.items() if qualification_callback(v) else k: v})
else:
dictionary.update({k: callback(v) for k, v in dictionary.items()})
return dictionary
d = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
def bigger_than_two(number):
return number > 2
def double_it(number):
return number * 2
transform_dictionary(d, double_it, bigger_than_two)
# expecting {'one': 1, 'two': 2, 'three': 6, 'four': 8, 'five': 10}
transform_dictionary(d, double_it)
# expecting {'one': 2, 'two': 4, 'three': 6, 'four': 8, 'five': 10}
我正在阅读有关 dict comprehensions 的内容,但没有找到一种方法来做我想做的事情,要么进行我的计算,要么保持值不变。有没有办法从上面得到我想要的结果?
这样理解就能如愿以偿
def transform_dictionary(dictionary, callback, qualification_callback=None):
return {k: callback(v) if (qualification_callback and qualification_callback(v)) or not qualification_callback else v for k, v in dictionary.items()}
带条件的字典理解采用以下结构:
new_dict = {key:VALUE_1 if CONDITION_1
else VALUE_2 if CONDITION_2
else VALUE_3 for key in myDict.keys()}
这是一个简单的例子,希望你能看到它是如何工作的并修改它
适合您的特定应用。
myDict = {"a": 4, "b": 7, "c": 55, "d": 432}
new_dict = {key:"greater than 100" if (myDict[key] > 100)
else "10 to 100" if myDict[key] > 10
else "10 or less" for key in myDict.keys()}
我正在尝试简化大量字典的修改,这些字典会大量更改数字(从日期字符串到 python 日期,小数到浮点数等),我希望能够确定是否需要更改某些内容(也许我只想更改一些数字,而不是日期):
def transform_dictionary(dictionary, callback, qualification_callback=None):
if qualification_callback:
dictionary.update({k: callback(v) for k, v in dictionary.items() if qualification_callback(v) else k: v})
else:
dictionary.update({k: callback(v) for k, v in dictionary.items()})
return dictionary
d = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
def bigger_than_two(number):
return number > 2
def double_it(number):
return number * 2
transform_dictionary(d, double_it, bigger_than_two)
# expecting {'one': 1, 'two': 2, 'three': 6, 'four': 8, 'five': 10}
transform_dictionary(d, double_it)
# expecting {'one': 2, 'two': 4, 'three': 6, 'four': 8, 'five': 10}
我正在阅读有关 dict comprehensions 的内容,但没有找到一种方法来做我想做的事情,要么进行我的计算,要么保持值不变。有没有办法从上面得到我想要的结果?
这样理解就能如愿以偿
def transform_dictionary(dictionary, callback, qualification_callback=None):
return {k: callback(v) if (qualification_callback and qualification_callback(v)) or not qualification_callback else v for k, v in dictionary.items()}
带条件的字典理解采用以下结构:
new_dict = {key:VALUE_1 if CONDITION_1
else VALUE_2 if CONDITION_2
else VALUE_3 for key in myDict.keys()}
这是一个简单的例子,希望你能看到它是如何工作的并修改它 适合您的特定应用。
myDict = {"a": 4, "b": 7, "c": 55, "d": 432}
new_dict = {key:"greater than 100" if (myDict[key] > 100)
else "10 to 100" if myDict[key] > 10
else "10 or less" for key in myDict.keys()}