Python中如何实现Perl模式以跟踪某物是否已被看到?

5 投票
3 回答
835 浏览
提问于 2025-04-15 18:48

在Perl中,可以这样做:

for (@foo) {
    # do something 
    next if $seen{$_}++;
}

我想在Python中实现类似的功能,也就是如果某个代码块已经执行过一次,就跳过它。

3 个回答

1

如果你不在乎foo里面东西的顺序,只在乎能遍历到独特的项目,那么解决方案就简单多了。

for x in set(foo):
    do something
1

好的,下面是你提供的内容:

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当你点击一个按钮时,程序就会做出反应。这种反应可以是显示一条消息、改变页面的内容,或者执行一些计算。

为了实现这些功能,我们通常会使用一些代码来定义这些操作。代码就像是给计算机下达的指令,告诉它该做什么。通过编写这些指令,我们可以让程序变得更加智能和互动。

在这个过程中,理解基本的编程概念非常重要。比如,变量就像是一个可以存放信息的盒子,你可以随时查看或修改里面的内容。条件语句则是让程序根据不同的情况做出不同的反应,就像是生活中的选择。

总之,编程就是通过写代码来让计算机完成我们想要的事情。虽然一开始可能会觉得有点复杂,但只要多练习,就会越来越容易。

希望这些解释能帮助你更好地理解编程的基本概念!

seen={}
for item in foo:
   if seen.has_key(item):
      seen[item]+=1
      continue # continue is optional, just to illustrate the "next" in Perl
   else:
      seen[item]=1
11
seen = set()
for x in foo:
    if x in seen:
        continue
    seen.add(x)
    # do something

想了解更多信息,可以查看set的文档。

另外,在itertools模块的文档底部,有一些例子,其中包含一个叫做unique_everseen的生成器,你可以这样使用:

for x in unique_everseen(foo):
    # do something

撰写回答