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];
我的意思是它是关于索引的递增,而不是找到一个特定的字符串。在
如果
^{1}$array
是一个字符串,那么最短的python版本显然是:一种更通用/非特定于字符串的方法是使用迭代器:
^{pr2}$在这种特殊情况下,您可以:
^{1}$但是,在更一般的情况下,如果需要跳过元素,可以修改原始迭代器:
^{pr2}$在这里,您需要更加注意数组的边界;如果最后一个元素是
:
,那么在耗尽迭代器上调用next
时会出现StopIteration
异常。你得抓住这个。在或许:
^{1}$或者per@jornsharpe:
^{pr2}$相关问题 更多 >
编程相关推荐