我有一个字典列表,可以包含更多的字典、列表或元组。我无法知道哪个键将这些对象中的一个作为值
我试图把上面提到的所有东西都从字典中删除,但保留了其他任何东西。同时,我也有一个关键的“名单”,存在于每一本字典。我需要把它连接成一个带“-”分隔符的字符串
我有这个代码,它工作得很好。我已经使用Python3一年了,想知道这是否是最具Python风格的方法?我找不到太多关于用谷歌从其他对象中按类型删除对象的信息
test_list = [{'val1': 'a', 'val2': 'b', 'dict': {'a': 'b'}, 'list': ['a', 'b'], 'tuple': ('a', 'b')},
{'val66': 'a', 'val65': 'b', 'dict22': {'a': 'b'}, 'list': ['a', 'b'], 'tuple22': ('a', 'b')}]
for obj in test_list:
x = obj
x['list_path'] = "-".join(str(v) for v in obj['list'])
x = {k: v for k, v in x.items() if not (isinstance(v, dict) or isinstance(v, list) or isinstance(v, tuple))}
print(x)
输出(正确):
{'val1': 'a', 'val2': 'b', 'list_path': 'a-b'}
{'val66': 'a', 'val65': 'b', 'list_path': 'a-b'}
有两件事我会改变:
将某个东西命名为
obj
然后在下一行将其重命名为x
没有任何意义。也许你以为你在抄袭?第一个更改(关于list_path
)实际上修改了原始对象isinstance
接受要测试的类的元组因此,我将执行以下操作(不会修改原件):
相关问题 更多 >
编程相关推荐