Hem*_*ere 2 python dictionary-comprehension
我正在尝试将以下内容转换为字典理解
my_dict = {'a': None, 'b': None, 'c': ['1', '2', '3']}
new_dict = {}
for k, v in my_dict.items():
if not v:
new_dict[k] = None
else:
for item in v:
new_dict[f'{k}{item}'] = None
Run Code Online (Sandbox Code Playgroud)
我正在尝试将我的 dict 翻译成
new_dict = {'a': None, 'b': None, 'c1': None, 'c2': None, 'c3': None}
Run Code Online (Sandbox Code Playgroud)
我对基本列表和字典理解相当满意,但在这个问题上挣扎,目前看起来像这样,但显然我对语法有点偏离:
{k: None if not v else f'{k}{item}': None for item in v for k, v in my_dict.items()}
Run Code Online (Sandbox Code Playgroud)
这个可憎的东西会做:
{fk: None
for k, v in my_dict.items()
for fk in ([k] if v is None else (k + fv for fv in v))}
Run Code Online (Sandbox Code Playgroud)
如果值为None,则您只需要密钥。
如果值不是None,您需要一个与键连接的每个值的列表。
同质化以始终返回一个列表,一个键或多个:
[k] if v is None else [k + fv for fv in v]
Run Code Online (Sandbox Code Playgroud)
然后你会看到一个“简单”的嵌套理解:
{k: None for k in [['a'], ['b'], ['c1', 'c2', 'c3']] for fk in k}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |