标签: nested

遍历Python dict中的嵌套键并在首次出现时中断

我有一个像下面这样的JSON dict:

             "{
                        "a":1,
                        "b":{
                             "b1":False,
                             "b2":{"b21": 2, "b22":8}
                         },  
                        "c": { 
                            "b1":True, 
                            "b2":2,
                            "b4":8
                         },
                        "d":{
                            "b1":False, 
                            "d1":89
                         }
                       }"
Run Code Online (Sandbox Code Playgroud)

我想检查"b1"字典中键的值,并在找到时退出b1=True。如果我检查了整个字典(包括嵌套键),但没有找到b1 = True,那么我想返回False。对于上面的示例,我的函数应返回True。

基本上,我想在第一次出现时破坏代码b1=True并遍历dict的所有键(在所有级别中),如果不存在此出现,则返回False。

这是我想出的:

def isb1True(jsonDoc):
  found = False
    for (key,value) in jsonDoc.iteritems():
        if key=='b1':
            if value==True :
                found=True
                break
        else:
            isb1True(value)
   return found
Run Code Online (Sandbox Code Playgroud)

我的代码总是返回False

python dictionary nested key

1
推荐指数
1
解决办法
463
查看次数

如果声明,请避免嵌套?(Python 2.7)

我从一本书"Invent With Python"中得到了这个猜谜游戏的想法.我不喜欢原始剧本没有涵盖重新猜测数字或错误地使用不在1 - 20的数字的可能性,所以我修改了它.该程序运行良好,但是,如果/ elif/else代码块,我只是围着我的脑袋.

我想重写脚本而不必嵌套,如果在if之内.我甚至无法开始关注如何做到这一点.任何人都可以帮助我 - 只是这个程序如何在没有嵌套的情况下工作的一个例子会很棒!

这是完整的小脚本:

from random import randint
from sys import exit
name = raw_input("Hello! What's your name? ")
print "Well %s, I'm thinking of a number between 1 and 20." % name
print "Since I'm a benevolent computer program, I'll give you 6 guesses."
secret_number = randint(1, 20)

guesses_left = 6
already_guessed = []

while guesses_left > 0:
    try:
        guess = int(raw_input("Take a guess: "))

        if guess >= 1 and guess <= 20 …
Run Code Online (Sandbox Code Playgroud)

python nested

1
推荐指数
1
解决办法
2129
查看次数

这个if else语句有什么问题?

我和Ada一起工作,控制声明上缺少括号让我有点混乱.我写了以下if-else语句:

if i = 1 then
    largest := nextInteger;
else if i = 2 then
    if nextInteger > largest then
        secondLargest := largest;
        largest := nextInteger;
    else
        secondLargest := nextInteger;
    end if;
else
    if nextInteger > largest then
        secondLargest := largest;
        largest := nextInteger;
    else if largest > nextInteger and then nextInteger > secondLargest then
        secondLargest := nextInteger;
    end if;
end if;
Run Code Online (Sandbox Code Playgroud)

我得到的错误消息是:

program_one.adb:15:05: missing "end if:" for "if" at line 3
program_one.adb:15:05: missing "end if;" for "if" at line …
Run Code Online (Sandbox Code Playgroud)

if-statement nested ada

1
推荐指数
1
解决办法
101
查看次数

如何将嵌套函数作为参数传递

让我们说我们在python中有函数:

def _abs(iterable):   #cause its normally for one element only
    return [abs(i) for i in iterable]

def A(list, foo):
    return foo(list)

list = [2,3,-5]
print( A(list,foo=sum) )

>> 0
Run Code Online (Sandbox Code Playgroud)

虽然我可能会foo=sum转到A,但我正在寻找一种优雅的方式来传递类似foo=sum(_abs)表演的东西sum(_abs(list)).

我现在看到它的唯一方法是发送一个函数列表[sum, _abs]并按顺序应用它们.有没有更好的办法?

python nested function

1
推荐指数
1
解决办法
269
查看次数

将Tableview放在UITableViewCell Swift中

我在将一个tableview放在一个uitableview单元格中时遇到了麻烦.现在,它甚至没有显示嵌套的tableview.我将tableview的委托和数据源设置为自定义单元格,并具有所有必需的方法.我也在为我的tableviews使用故事板,并正确连接所有插座.

问题是它没有进入cellforrow功能.但是,它确实进入了numberofrowinsection函数,以及heightforrow函数.下面是包含嵌套的uitableviewcell的自定义单元格的代码.

导入UIKit

class EventSurveyCell:UITableViewCell,UITableViewDelegate,UITableViewDataSource {

import UIKit

class EventSurveyCell: UITableViewCell, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var cellBox: UIView!
@IBOutlet weak var announcementLabel: UILabel!
@IBOutlet weak var descriptionLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var authorLabel: UILabel!
@IBOutlet weak var numVotesLabel: UILabel!
@IBOutlet weak var tableView: UITableView!
var surveyArray: [SurveyClass] = []

override func awakeFromNib() {
    super.awakeFromNib()
    tableView.delegate = self
    tableView.dataSource = self
    // Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    tableView.delegate …
Run Code Online (Sandbox Code Playgroud)

nested uitableview swift

1
推荐指数
1
解决办法
4803
查看次数

如何确定已读取所有文件并解决承诺

以下代码负责读取文件.我的要求是如何查找是否已读取所有文件,以便我可以从父函数(readmultifiles)返回或解析promise.

        $.when(readmultifiles(files))
               .then(function(){//all files uploaded}))
Run Code Online (Sandbox Code Playgroud)

上面的代码启动文件读取.可以做什么,以便在读取所有文件时完成回调或可以返回.

        function readmultifiles(files) {               
            // Read first file
            setup_reader(files, 0);
        }


        function setup_reader(files, i) {
            var file = files[i];
            var name = file.name;
            var reader = new FileReader();
            reader.onload = function(e) {
                readerLoaded(e, files, i, name);
            };
            reader.readAsBinaryString(file);
            // After reading, read the next file.
        }

        function readerLoaded(e, files, i, name) {
            // get file content  
            var bin = e.target.result;
            // do sth with text


            // If there's a file left to load
            if (i …
Run Code Online (Sandbox Code Playgroud)

javascript jquery nested promise deferred

1
推荐指数
1
解决办法
707
查看次数

SASS/SCSS:将类作为父级嵌套,将标记嵌套为子级

对于指定的类,我需要根据具有该类的标记应用不同的规则.生成的CSS应该是:

.class {
    display: block;
}
table.class {
    display: table;
}
tr.class {
    display: table-row;
}
td.class {
    display: table-cell;
}
Run Code Online (Sandbox Code Playgroud)

在我的SCSS中,我尝试过:

.class {
    // ...

    table#{&} {
        // ...
    }
    // etc.
}
Run Code Online (Sandbox Code Playgroud)

...但它编译了这个,这是错误的:

.class {
    // ...
}
.class table.class {
    // ...
}
// etc.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

如果我把&符号放在标签名称之前,那么它就编译成了.classtable.class { … },这更糟糕.

css nested sass

1
推荐指数
1
解决办法
290
查看次数

Python删除列表字典中的重复项

我的字典看起来像这样:

dictionary= {apple:[3,5], banana:[3,3,6], strawberry:[1,2,4,5,5]}
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除每个值/列表的所有重复项(因此创建一个集合)?

我希望新词典看起来像这样:

{apple:[3,5], banana:[3,6], strawberry:[1,2,4,5]}
Run Code Online (Sandbox Code Playgroud)

python dictionary nested list unique

1
推荐指数
1
解决办法
686
查看次数

Python多重嵌套三元表达式

使用Python(2.7)三元表达式x if cond else y时,按顺序嵌套这些表达式的多个表达式时,逻辑顺序是什么?

1 if A else 2 if B else 3
Run Code Online (Sandbox Code Playgroud)

为此绘制出真值表似乎被评估为1 if A else (2 if B else 3)而不是(1 if A else 2) if B else 3

A      True  False
B                 
True      1      2
False     1      3
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么要按此顺序执行,并可能建议一些可以直观地理解为什么使用/首选的材料吗?

考虑使用内联for语句进行排序时,这似乎并不明显:

>>>[(i, j, k) for i in range(1) for j in range(2) for k in range(3)]
[(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 0), (0, 1, …
Run Code Online (Sandbox Code Playgroud)

python for-loop nested ternary-operator

1
推荐指数
2
解决办法
1904
查看次数

嵌套朋友类所需的前向声明

假设我有两个类定义如下:

class obj1
{
  private:
    int mem;
    void method1();

  friend class obj2;
};

class obj2
{
  public:
    void method2();
};

void obj2::method2()
{
  obj1 test;
  test.mem = 59999;
  std::cout << test.mem;
  return;
}
Run Code Online (Sandbox Code Playgroud)

这非常有效.在main中,如果我声明一个obj2类型的对象然后调用它的method2成员函数,它可以成功地从obj1的实例访问私有变量.现在,假设我将这些类嵌套:

class parent
{
  public:
  class obj1
  {
    private:
      int mem;
      void method1();

    friend class obj2;
  };

  class obj2
  {
    public:
      void method2();
  };
  void my_function();
};

void parent::obj2::method2()
{
  obj1 test;
  test.mem = 59999;
  std::cout << test.mem;
  return;
}

void parent::my_function()
{
  obj2 test2;
  obj2.method2();
  return; …
Run Code Online (Sandbox Code Playgroud)

c++ nested class declaration forward

1
推荐指数
1
解决办法
173
查看次数