我有一个python dict,下面是dict键的输出:
type(es_dict)
<class 'dict'>
type(es_dict.keys())
<class 'dict_keys'>
es_dict.keys()
dict_keys(['b_Biomass_Mid', <class 'oemof.solph.blocks.Bus'>,
'b_Coal_Mid', 'b_Gas_Mid', 'b_Lignite_Mid', 'b_Elec_Mid',
's_Biomass_Mid', <class 'oemof.solph.blocks.Flow'>,
's_Coal_Mid', 's_Gas_Mid', 's_Lignite_Mid', 'rs_Hydro_Mid',
<class 'oemof.solph.blocks.InvestmentFlow'>, 'rs_Solar_Mid',
'rs_Wind_Mid', 'pp_Biomass_Mid', <class 'oemof.solph.blocks.Transformer'>,
'pp_Coal_Mid', 'pp_Gas_Mid', 'pp_Lignite_Mid', 'Elec_Mid',
'storage_Elec_Mid', 'b_Biomass_South', 'b_Coal_South',
'line_Mid_North', 'line_North_South', 'line_Mid_South'])
我想将包含'line'
的键收集到python列表中。你知道吗
为此,我使用以下代码段:
list = []
for key in es_dict.keys():
if 'line' in key:
list.append(key)
但我得到了以下错误:
if 'line' in key:
TypeError: argument of type 'type' is not iterable
如何解决这个问题?你知道吗
这不是代码的问题,而是
dict
是如何创建的。dict中的一些键是类型/类,而不是实例。即<class 'oemof.solph.blocks.Bus'>
这很可能是个虫子。看看创建这个映射的代码。你知道吗
es_dict
的一些键是类对象,它们是不可iterable的。在使用in
运算符检查'line'
是否是其子字符串之前,可以添加一个条件以确保键是字符串:相关问题 更多 >
编程相关推荐