Python中PHP的foreach等价是什么?

1 投票
4 回答
532 浏览
提问于 2025-04-15 19:07

我正在从数据库中获取数据行,并想要填充一个多维字典。

用PHP写的代码大概是这样的:

foreach($query as $rows):
    $values[$rows->id][] = $rows->name;
endforeach;

return $values;

我遇到了一些问题,搞不清楚:

  • 在Python中,如何用自动编号的方式给字典添加键,比如像$values[]那样?

  • 我想用变量来填充Python字典;比如,使用values[id] = name,这样会覆盖已有的键,而不是添加新的。

我完全不知道该怎么做,因为我还是Python初学者(其实我编程方面都很菜)。

4 个回答

2

在编程中,很多时候我们需要让程序根据不同的情况做出不同的反应。这就像是给程序设置了一些“规则”,让它知道在什么情况下该做什么。

比如说,如果你在一个游戏里,角色的生命值降到零了,程序就需要知道这个角色已经“死”了,应该停止游戏或者重新开始。这种根据条件来执行不同操作的方式,通常被称为“条件语句”。

条件语句就像是一个分岔路口,程序在这里需要做出选择。它会检查某个条件是否成立,如果成立,就走一条路;如果不成立,就走另一条路。

在很多编程语言中,条件语句的基本结构看起来像这样:

   all_rows=[] 
   for row in query:
       all_rows.append(row['col'])
   print(all_rows)

这里的“条件”就是你要检查的事情,比如“角色的生命值是否小于等于零”。如果这个条件成立,程序就会执行“角色死亡”的相关代码;如果不成立,程序就会继续执行其他的代码。

通过使用条件语句,程序能够根据不同的情况做出不同的反应,这样就能让程序变得更加智能和灵活。

8

在编程中,有时候我们需要让程序在特定的条件下做出反应。比如说,当用户点击一个按钮时,程序就要执行某个操作。这种情况我们通常会用“事件”来处理。

事件就像是程序中的一个信号,告诉程序发生了某件事情。比如,用户点击了鼠标、按下了键盘,或者页面加载完成等。程序可以“监听”这些事件,一旦发生了,就会执行相应的代码。

为了让程序能够处理这些事件,我们通常会使用一些特定的函数或者方法来绑定事件。这样,当事件发生时,程序就会自动调用这些函数,完成我们想要的操作。

总之,事件处理就是让程序能够对用户的操作做出反应的一种方式。通过合理地使用事件,我们可以让程序变得更加互动和智能。

values = collections.defaultdict(list)
for rows in query:
  values[rows.id].append(rows.name)
return values
4

这里有几点一般性的说明:

  1. Python中的字典是一种没有顺序的映射结构,虽然你可以使用数字作为键来实现“顺序”访问,但在迭代时并不能保证顺序会和键的自然顺序一致。
  2. 最好不要直接把PHP代码翻译成Python(或其他语言),而是应该写出符合该语言习惯的代码。可以看看很多开源代码,它们实现了相同或类似的功能,你可能还会找到一些有用的模块(库)。

撰写回答