3 回答

TA贡献1883条经验 获得超3个赞
>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}
>>> {k: v for k, v in c.iteritems() if '1d' not in k}
{('1w', 'f1'): 1.2}
在py2.x中使用c.iteritems()它返回迭代器,对于py3.x可以使用c.items()。
请注意,这c.items()将在两个版本中均适用。

TA贡献1785条经验 获得超4个赞
>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}
>>> {k: v for k, v in c.items() if k[0] != '1d'}
{('1w', 'f1'): 1.2}
对于一般情况下使用if '1d' not in k。在Python 2.x中,使用dict.iteritems(迭代器而不是列表)代替

TA贡献1786条经验 获得超11个赞
请考虑以下方法
在python 2.7及更高版本中,您可以使用dict理解
>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}
>>> {k: v for k, v in c.items() if '1d' not in k}
{('1w', 'f1'): 1.2}
在python 2.6及更低版本中,应使用generator代替dict
>>> c = {('1d','f1'):1.5,('1w','f1'):1.2,('1d','f2'):1.4}
>>> dict((k, v) for k, v in c.iteritems() if '1d' not in k)
{('1w', 'f1'): 1.2}
添加回答
举报