与Python中的array[+++i]和array[i++]相比的代码?

2024-09-30 01:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

<>在C中,以及C++中,可以在for循环中改变索引(例如{{CD1>})。例如,这有助于比较当前元素并基于该比较比较比较下一个元素:

for(int i = 0; i < end; i++)
  if(array[i] == ':')
    if(array[++i] == ')')
      smileyDetected = true;

现在我知道这在Python(对于variousreasons)中是不能做到的。然而,我不禁要问,Python是否还有其他的替代品呢?我可以想出:

^{pr2}$

但是,这会让我额外花费一行代码,这听起来并不糟糕,除非你多次重复相同的操作(“不可读”并不意味着文件很长)。所以要把它放在一条线上,我会想 array[i += 1],但这似乎是无效的语法。在

有没有Python等价物,它在读取递增索引的同一行中执行索引的递增?在

编辑:
正如大多数答案提到的那样,使用in来查找子字符串,作为特定示例的替代方法,让我添加另一个无法以这种方式解决的示例:

j = 0;
for(int i = 0; i < end; i++)
  if(array[i] == ':')
    if(array[++i] == ')')
      anotherArray[j++] = array[++i];

我的意思是它是关于索引的递增,而不是找到一个特定的字符串。在


Tags: 字符串true元素替代品示例forifarray
3条回答

如果array是一个字符串,那么最短的python版本显然是:

^{1}$

一种更通用/非特定于字符串的方法是使用迭代器:

^{pr2}$

在这种特殊情况下,您可以:

^{1}$

但是,在更一般的情况下,如果需要跳过元素,可以修改原始迭代器:

^{pr2}$

在这里,您需要更加注意数组的边界;如果最后一个元素是:,那么在耗尽迭代器上调用next时会出现StopIteration异常。你得抓住这个。在

或许:

^{1}$

或者per@jornsharpe:

^{pr2}$

相关问题 更多 >

    热门问题