相关疑难解决方法(0)

字典和默认值

假设connectionDetails是一个Python字典,那么重构这样的代码的最好,最优雅,最"pythonic"的方法是什么?

if "host" in connectionDetails:
    host = connectionDetails["host"]
else:
    host = someDefaultValue
Run Code Online (Sandbox Code Playgroud)

python dictionary coding-style

193
推荐指数
8
解决办法
16万
查看次数

如何在Ruby中合并两个哈希而不覆盖重复键?

是否有一种简单或优雅的方法来合并两个哈希而不会覆盖重复的键?

也就是说,如果密钥存在于原始哈希中,我不想更改其值.

ruby

135
推荐指数
2
解决办法
8万
查看次数

从dict中删除带有空字符串的键的有效方法

我有一个字典,并希望删除所有有空值字符串的键.

metadata = {u'Composite:PreviewImage': u'(Binary data 101973 bytes)',
            u'EXIF:CFAPattern2': u''}
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

python dictionary

103
推荐指数
10
解决办法
8万
查看次数

循环遍历所有嵌套字典值?

for k, v in d.iteritems():
    if type(v) is dict:
        for t, c in v.iteritems():
            print "{0} : {1}".format(t, c)
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历字典并打印出值不是嵌套字典的所有键值对.如果值是字典,我想进入它并打印出其键值对...等.有帮助吗?

编辑

这个怎么样?它仍然只打印一件事.

def printDict(d):
    for k, v in d.iteritems():
        if type(v) is dict:
            printDict(v)
        else:
            print "{0} : {1}".format(k, v)
Run Code Online (Sandbox Code Playgroud)

完整测试案例

字典:

{u'xml': {u'config': {u'portstatus': {u'status': u'good'}, u'target': u'1'},
      u'port': u'11'}}
Run Code Online (Sandbox Code Playgroud)

结果:

xml : {u'config': {u'portstatus': {u'status': u'good'}, u'target': u'1'}, u'port': u'11'}
Run Code Online (Sandbox Code Playgroud)

python dictionary

93
推荐指数
7
解决办法
18万
查看次数

php array_merge没有擦除值?

背景: Trevor正在使用标准算法的PHP实现:获取一组主要的默认名称 - 值对,并更新这些名称 - 值对,但仅限于那些实际存在有效更新值的名称 - 值对.

问题:默认情况下,PHP array_merge的工作方式如下......它将使用空值覆盖非空值.

$aamain   =   Array('firstname'=>'peter','age'=>'32','nation'=>'');
$update   =   Array('firstname' => '','lastname' => 'griffin', age =>'33','nation'=>'usa');

print_r(array_merge($aamain,$update));    
/*
Array
(
    [firstname] =>           // <-- update set this to blank, NOT COOL!
    [age] => 33              // <-- update set this to 33, thats cool
    [lastname] => griffin    // <-- update added this key-value pair, thats cool
    [nation] => usa          // <-- update filled in a blank, thats cool.
)
*/
Run Code Online (Sandbox Code Playgroud)

问题:执行array_merge的代码行最少的方法是什么,其中空白值永远不会覆盖已存在的值?

print_r(array_coolmerge($aamain,$update));    
/* …
Run Code Online (Sandbox Code Playgroud)

php arrays merge

13
推荐指数
3
解决办法
8982
查看次数

标签 统计

dictionary ×3

python ×3

arrays ×1

coding-style ×1

merge ×1

php ×1

ruby ×1