从范围生成 python 字典理解
Generate python dictionary comprehension from a range
可以从一个范围生成 python 字典理解吗,即给定一个 range(42)
我想得到类似
的东西
{
"key0": "value0",
"key1": "value1",
....
"key41", "value41"
}
我知道这可以通过列表理解间接完成,例如:
dict(("key" + str(i), "value" + str(i)) for i in range(42))
字典理解是否允许类似的结构?
你们非常亲密。一种方法是使用以下 "dictionary comprehension"。只需将其扩展到 range(42)
。您不需要在列表理解中明确使用关键字 dict
。 { }
为您完成。 This pep 网页提供了更多关于词典理解的解释。
ans = {"key" + str(i): "value" + str(i) for i in range(10)}
# {'key0': 'value0',
# 'key1': 'value1',
# 'key2': 'value2',
# 'key3': 'value3',
# 'key4': 'value4',
# 'key5': 'value5',
# 'key6': 'value6',
# 'key7': 'value7',
# 'key8': 'value8',
# 'key9': 'value9'}
sol = {'key{}'.format(i):'value{}'.format(i) for i in range(42)}
print(sol)
{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4', 'key5': 'value5', 'key6': 'value6', 'key7': 'value7', 'key8': 'value8', 'key9': 'value9', 'key10': 'value10', 'key11': 'value11', 'key12': 'value12', 'key13': 'value13', 'key14': 'value14', 'key15': 'value15', 'key16': 'value16', 'key17': 'value17', 'key18': 'value18', 'key19': 'value19', 'key20': 'value20', 'key21': 'value21', 'key22': 'value22', 'key23': 'value23', 'key24': 'value24', 'key25': 'value25', 'key26': 'value26', 'key27': 'value27', 'key28': 'value28', 'key29': 'value29', 'key30': 'value30', 'key31': 'value31', 'key32': 'value32', 'key33': 'value33', 'key34': 'value34', 'key35': 'value35', 'key36': 'value36', 'key37': 'value37', 'key38': 'value38', 'key39': 'value39', 'key40': 'value40', 'key41': 'value41'}
>python3.5,f 字符串类似于
>>> {f"key{i}": f"value{i}" for i in range(5)}
{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}
>>>
可以从一个范围生成 python 字典理解吗,即给定一个 range(42)
我想得到类似
{
"key0": "value0",
"key1": "value1",
....
"key41", "value41"
}
我知道这可以通过列表理解间接完成,例如:
dict(("key" + str(i), "value" + str(i)) for i in range(42))
字典理解是否允许类似的结构?
你们非常亲密。一种方法是使用以下 "dictionary comprehension"。只需将其扩展到 range(42)
。您不需要在列表理解中明确使用关键字 dict
。 { }
为您完成。 This pep 网页提供了更多关于词典理解的解释。
ans = {"key" + str(i): "value" + str(i) for i in range(10)}
# {'key0': 'value0',
# 'key1': 'value1',
# 'key2': 'value2',
# 'key3': 'value3',
# 'key4': 'value4',
# 'key5': 'value5',
# 'key6': 'value6',
# 'key7': 'value7',
# 'key8': 'value8',
# 'key9': 'value9'}
sol = {'key{}'.format(i):'value{}'.format(i) for i in range(42)}
print(sol)
{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4', 'key5': 'value5', 'key6': 'value6', 'key7': 'value7', 'key8': 'value8', 'key9': 'value9', 'key10': 'value10', 'key11': 'value11', 'key12': 'value12', 'key13': 'value13', 'key14': 'value14', 'key15': 'value15', 'key16': 'value16', 'key17': 'value17', 'key18': 'value18', 'key19': 'value19', 'key20': 'value20', 'key21': 'value21', 'key22': 'value22', 'key23': 'value23', 'key24': 'value24', 'key25': 'value25', 'key26': 'value26', 'key27': 'value27', 'key28': 'value28', 'key29': 'value29', 'key30': 'value30', 'key31': 'value31', 'key32': 'value32', 'key33': 'value33', 'key34': 'value34', 'key35': 'value35', 'key36': 'value36', 'key37': 'value37', 'key38': 'value38', 'key39': 'value39', 'key40': 'value40', 'key41': 'value41'}
>python3.5,f 字符串类似于
>>> {f"key{i}": f"value{i}" for i in range(5)}
{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}
>>>