Используйте список функций в понимании.
{f(x): g(x) for x in range(2) for f, g in [(f1, g1), (f2, g2)]}
Этот список также может быть условным, в зависимости от того, насколько вы заботитесь о порядке (например, если ключ может быть перезаписан).что теперь в диктантах Python 3.7 запоминается порядок вставки (и всегда есть OrderedDict
)
new_dict = {f(x): g(x) for x in range(2) for f, g in {f1:g1, f2:g2}.items()}
Вы можете преобразовать ключи в список, например
new_list = [*new_dict]
Это будет иметьтот же порядок вставки, но dict не может содержать дубликаты ключей, поэтому список, составленный из него, тоже не будет.Это может или не может быть то, что вы хотите.
Если вы хотите сохранить дубликаты, сначала составьте список пар, а затем используйте его для создания списка и указания.
pairs = [(f(x), g(x)) for x in range(2) for f, g in [(f1, g1), (f2, g2)]]
new_dict = dict(pairs)
new_list = [f for f, _ in pairs]
Если вы все еще используете старую версиюPython, обратите внимание, что вы также можете сделать OrderedDict
из таких пар, как это,
from collections import OrderedDict
new_dict = OrderedDict((f(x), g(x)) for x in range(2) for f, g in [(f1, g1), (f2, g2)])