从字符串生成python词典理解

2024-03-29 15:34:26 发布

您现在位置:Python中文网/ 问答频道 /正文

python字典理解是否可以从一个范围生成,即给定一个range(42)我想得到

{
    "key0": "value0",
    "key1": "value1",
    ....
    "key41", "value41"
}

我知道可以通过列表理解间接完成,例如:

dict(("key" + str(i), "value" + str(i)) for i in range(42))

词典理解是否允许类似的结构


Tags: keyin列表for字典valuerangedict
3条回答

使用>;python3.5,用f字符串

>>> {f"key{i}": f"value{i}" for i in range(5)}
{'key0': 'value0', 'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}
>>>
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'}

你很接近。一种方法是使用下面的“词典理解”。把它扩展到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'}

相关问题 更多 >