创建迭代输入值列表的字典列表
Create a list of Dictionaries iterating over list of input values
我正在尝试根据单独的输入列表创建字典列表。
示例:
输入
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', fish']
dessert = ['ice cream', 'flan', cake']
dict = {appetizer = [], entree = [], dessert = []}
dinner_options = []
从这里开始,我想创建一个字典列表,其中包含所有可能的晚餐选项
输出
dinner_options = [{appetizer = 'soup', entree = 'steak', dessert = 'ice cream'},
{appetizer = 'soup', entree = 'steak', dessert = 'flan'},
{appetizer = 'soup', entree = 'steak', dessert = 'cake'},
{appetizer = 'soup', entree = 'chicken', dessert = 'ice cream'},
{appetizer = 'soup', entree = 'chicken', dessert = 'flan'},
{appetizer = 'soup', entree = 'chicken', dessert = 'cake'},
{appetizer = 'soup', entree = 'fish', dessert = 'ice cream'},
{appetizer = 'soup', entree = 'fish', dessert = 'flan'},
{appetizer = 'soup', entree = 'fish', dessert = 'cake'},
{appetizer = 'salad', entree = 'steak', dessert = 'ice cream'},
{appetizer = 'salad', entree = 'steak', dessert = 'flan'},
{appetizer = 'salad', entree = 'steak', dessert = 'cake'},
{appetizer = 'salad', entree = 'chicken', dessert = 'ice cream'},
{appetizer = 'salad', entree = 'chicken', dessert = 'flan'},
{appetizer = 'salad', entree = 'chicken', dessert = 'cake'},
{appetizer = 'salad', entree = 'fish', dessert = 'ice cream'},
{appetizer = 'salad', entree = 'fish', dessert = 'flan'},
{appetizer = 'salad', entree = 'fish', dessert = 'cake'}]
基本上,最后我试图获得一个列表,其中包含输入中提供的列表(参数)的所有排列。
您只需要遍历您的列表并将可能性附加到您的 dinner_options
数组。
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', 'fish']
dessert = ['ice cream', 'flan', 'cake']
dinner_options = []
for ap in appetizer:
for en in entree:
for de in dessert:
dinner_options.append({ "appetizer": ap, "entree": en, "dessert": de })
print(dinner_options)
然后应该显示
[{'appetizer': 'soup', 'entree': 'steak', 'dessert': 'ice cream'}, {'appetizer': 'soup', 'entree': 'steak', 'dessert': 'flan'}, {'appetizer': 'soup', 'entree': 'steak', 'dessert': 'cake'}, {'appetizer': 'soup', 'entree': 'chicken', 'dessert': 'ice cream'}, {'appetizer': 'soup', 'entree': 'chicken', 'dessert': 'flan'}, {'appetizer': 'soup', 'entree': 'chicken', 'dessert': 'cake'}, {'appetizer': 'soup', 'entree': 'fish', 'dessert': 'ice cream'}, {'appetizer': 'soup', 'entree': 'fish', 'dessert': 'flan'}, {'appetizer': 'soup', 'entree': 'fish', 'dessert': 'cake'}, {'appetizer': 'salad', 'entree': 'steak', 'dessert': 'ice cream'}, {'appetizer': 'salad', 'entree': 'steak', 'dessert': 'flan'}, {'appetizer': 'salad', 'entree': 'steak', 'dessert': 'cake'}, {'appetizer': 'salad', 'entree': 'chicken', 'dessert': 'ice cream'}, {'appetizer': 'salad', 'entree': 'chicken', 'dessert': 'flan'}, {'appetizer': 'salad', 'entree': 'chicken', 'dessert': 'cake'}, {'appetizer': 'salad', 'entree': 'fish', 'dessert': 'ice cream'}, {'appetizer': 'salad', 'entree': 'fish', 'dessert': 'flan'}, {'appetizer': 'salad', 'entree': 'fish', 'dessert': 'cake'}]
您可以使用 itertools.product:
from itertools import product
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', 'fish']
dessert = ['ice cream', 'flan', 'cake']
# Here we create an iterable from the objects we want to obtain
# different combinations.
to_combine = (appetizer, entree, dessert)
# Next, we need to define the order in which those appear
# as those will be used as the keys in the individual
# dictionary objects.
order = 'appetizer,entree,dessert'.split(',')
dinner_options = list()
# Now we loop over the unpacked tuple and build each individual
# dictionary.
for items in product(*to_combine):
# This creates the individual objects which are of the form:
# `{'appetizer': '<a>', 'entree': '<e>', 'dessert': '<d>'}
d = {key:value for key, value in zip(order, items)}
dinner_options.append(d)
这会产生所需的输出。
我认为这个是最明显也是最耗时的答案
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', 'fish']
dessert = ['ice cream', 'flan', 'cake']
# dict = {appetizer = [], entree = [], dessert = []}
dinner_options = []
for start in appetizer:
for mid in entree:
for end in dessert:
data = dict(appetizer=start, entree=mid, dessert=end)
dinner_options.append(data)
print(dinner_options)
我正在尝试根据单独的输入列表创建字典列表。
示例: 输入
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', fish']
dessert = ['ice cream', 'flan', cake']
dict = {appetizer = [], entree = [], dessert = []}
dinner_options = []
从这里开始,我想创建一个字典列表,其中包含所有可能的晚餐选项
输出
dinner_options = [{appetizer = 'soup', entree = 'steak', dessert = 'ice cream'},
{appetizer = 'soup', entree = 'steak', dessert = 'flan'},
{appetizer = 'soup', entree = 'steak', dessert = 'cake'},
{appetizer = 'soup', entree = 'chicken', dessert = 'ice cream'},
{appetizer = 'soup', entree = 'chicken', dessert = 'flan'},
{appetizer = 'soup', entree = 'chicken', dessert = 'cake'},
{appetizer = 'soup', entree = 'fish', dessert = 'ice cream'},
{appetizer = 'soup', entree = 'fish', dessert = 'flan'},
{appetizer = 'soup', entree = 'fish', dessert = 'cake'},
{appetizer = 'salad', entree = 'steak', dessert = 'ice cream'},
{appetizer = 'salad', entree = 'steak', dessert = 'flan'},
{appetizer = 'salad', entree = 'steak', dessert = 'cake'},
{appetizer = 'salad', entree = 'chicken', dessert = 'ice cream'},
{appetizer = 'salad', entree = 'chicken', dessert = 'flan'},
{appetizer = 'salad', entree = 'chicken', dessert = 'cake'},
{appetizer = 'salad', entree = 'fish', dessert = 'ice cream'},
{appetizer = 'salad', entree = 'fish', dessert = 'flan'},
{appetizer = 'salad', entree = 'fish', dessert = 'cake'}]
基本上,最后我试图获得一个列表,其中包含输入中提供的列表(参数)的所有排列。
您只需要遍历您的列表并将可能性附加到您的 dinner_options
数组。
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', 'fish']
dessert = ['ice cream', 'flan', 'cake']
dinner_options = []
for ap in appetizer:
for en in entree:
for de in dessert:
dinner_options.append({ "appetizer": ap, "entree": en, "dessert": de })
print(dinner_options)
然后应该显示
[{'appetizer': 'soup', 'entree': 'steak', 'dessert': 'ice cream'}, {'appetizer': 'soup', 'entree': 'steak', 'dessert': 'flan'}, {'appetizer': 'soup', 'entree': 'steak', 'dessert': 'cake'}, {'appetizer': 'soup', 'entree': 'chicken', 'dessert': 'ice cream'}, {'appetizer': 'soup', 'entree': 'chicken', 'dessert': 'flan'}, {'appetizer': 'soup', 'entree': 'chicken', 'dessert': 'cake'}, {'appetizer': 'soup', 'entree': 'fish', 'dessert': 'ice cream'}, {'appetizer': 'soup', 'entree': 'fish', 'dessert': 'flan'}, {'appetizer': 'soup', 'entree': 'fish', 'dessert': 'cake'}, {'appetizer': 'salad', 'entree': 'steak', 'dessert': 'ice cream'}, {'appetizer': 'salad', 'entree': 'steak', 'dessert': 'flan'}, {'appetizer': 'salad', 'entree': 'steak', 'dessert': 'cake'}, {'appetizer': 'salad', 'entree': 'chicken', 'dessert': 'ice cream'}, {'appetizer': 'salad', 'entree': 'chicken', 'dessert': 'flan'}, {'appetizer': 'salad', 'entree': 'chicken', 'dessert': 'cake'}, {'appetizer': 'salad', 'entree': 'fish', 'dessert': 'ice cream'}, {'appetizer': 'salad', 'entree': 'fish', 'dessert': 'flan'}, {'appetizer': 'salad', 'entree': 'fish', 'dessert': 'cake'}]
您可以使用 itertools.product:
from itertools import product
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', 'fish']
dessert = ['ice cream', 'flan', 'cake']
# Here we create an iterable from the objects we want to obtain
# different combinations.
to_combine = (appetizer, entree, dessert)
# Next, we need to define the order in which those appear
# as those will be used as the keys in the individual
# dictionary objects.
order = 'appetizer,entree,dessert'.split(',')
dinner_options = list()
# Now we loop over the unpacked tuple and build each individual
# dictionary.
for items in product(*to_combine):
# This creates the individual objects which are of the form:
# `{'appetizer': '<a>', 'entree': '<e>', 'dessert': '<d>'}
d = {key:value for key, value in zip(order, items)}
dinner_options.append(d)
这会产生所需的输出。
我认为这个是最明显也是最耗时的答案
appetizer = ['soup', 'salad']
entree = ['steak', 'chicken', 'fish']
dessert = ['ice cream', 'flan', 'cake']
# dict = {appetizer = [], entree = [], dessert = []}
dinner_options = []
for start in appetizer:
for mid in entree:
for end in dessert:
data = dict(appetizer=start, entree=mid, dessert=end)
dinner_options.append(data)
print(dinner_options)