Python中文
首页
教程
问答
标签
搜索
登录
注册
从嵌套dict打印:如果键为“None”,则忽略
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有这样一个嵌套字典:</p> <pre><code>myDict = { "sample-adaptors": { "banana-mock": { "insts": [ "i-34d425g5" ] } }, "cucumber-test": { "None": { "insts": [ "i-65j3hue6" ] } }, "SampleMonitoring": { "sample-mon-comp": { "insts": [ "i-754mbde" ] }, "None": { "insts": [ "i-981a5134", "i-76a25ge1" ] } } } </code></pre> <p>从中,我需要像这样表述字符串:</p> <pre><code>EC2.sample-adaptors.banana-mock EC2.cucumber-test EC2.SampleMonitoring.sample-mon-comp </code></pre> <p>也就是说,如果第二个键不是<code>None</code>,它将被添加到带有<code>.</code>(点)的字符串中,否则就不是了。到目前为止,这就是我带来的。。。。你知道吗</p> <pre><code>>>> nStr = lambda s: str({'None':''}.get(s,s)) >>> zLen = lambda n: (1 if len(n)>=1 else 0) >>> >>> for proj in myDict: ... for comp in myDict[proj]: ... print "EC2.{0}{1}".format(proj, ('.'+nStr(comp))*zLen(nStr(comp))) </code></pre> <p>这是工作,但不知道这是做它的方式。这两个嵌套for循环是否可以缩短?实际的dict非常大,因此代码应该足够有效,以便尽可能快地处理数据。事先谢谢你的帮助。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>有时理解比显式循环慢(有时快)。只是测量不同的方法。你知道吗</p> <pre><code>['EC2.{}'.format(k) if k2 == 'None' else 'EC2.{}.{}'.format(k, k2) for k, v in myDict.items() for k2 in v] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何用if条件捕获函数返回值
1 回答
如何用if语句判断列表中是否存在该索引?
9 回答
如何用if语句向量化numpy数组中的最大值?
4 回答
如何用IF语句有条件地保存零碎的结果?
5 回答
如何用if语句测试异常对象?
2 回答
如何用IF语句编写二元函数
4 回答
如何用igraph在python中创建顶点权重的图?
8 回答
如何用ijson和python解析json
4 回答
如何用iloc求子矩阵
10 回答
如何用Imagemagick或PIL绘制高质量的图像笔划(边框)?
8 回答
如何用importlib在python中动态导入模块?
6 回答
如何用import语句重写python内置函数?
5 回答
如何用imshow混合裁剪的强度并显示正确的混合强度?
5 回答
如何用in dictionary解析havin dictionary中的json文件
9 回答
如何用in-Django URL替换%20
9 回答
如何用in\op正确构造查询
8 回答
如何用inbuild对象替换文件
5 回答
如何用inheritan类实现flask restful
1 回答
如何用intersphinx正确地编写对外部文档的交叉引用?
4 回答
如何用int修改LpVariable?
3 回答