小编and*_*dio的帖子

如何在列表中获取python中当前循环的内部索引?

我有一个 listx =[1,2,3,4,5,6,7,8,9]

我想改变列表中的每个第N项.例如,我想修改每2个项目步骤,假设我想修改+1.所以我想得到结果=[1+1,2,3+1,4,5+1,6,7+1,8,9+1] =[2,2,4,4,6,6,8,8,9]

我可以通过使用for循环,通过添加计数器变量,然后通过计数器%2 == 0检查计数器.但这次我只是好奇使用单行声明.这就是我想要的=

newlistx=[i+1 for i in listx] < - 这会修改所有项目,所以我希望我可以在这个迭代过程中使用一些内部索引,变成这样:

newlistx=[i+1 if (__indexing__%step==0) else i for i in listx] 其中step = 2.

实际上,我可以使用list.index()函数,如下所示:

newlistx=[i+1 if listx.index(i)%2==0 else i for i in listx]

这个问题只有在所有项目都是唯一的情况下才有效,如果我得到的项目具有相同的值,那么index()将返回错误的值.

再次,我只是好奇我是否可以获取一些内部索引或计数器,如果存在的话.

python indexing counter loops

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

googlesheet:如何找到数组的长度?

我尝试使用 vlookup() 或类似的东西从其他表中查询。我想计算它会产生多少个数组。

如何从 query() 或 filter() 或 vlookup() 找到输出或结果数组的长度?类似于 len() 但用于计数数组。

谢谢

arrays count filter google-sheets google-query-language

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

python regex [.] +应该表示任何单个或重复的字符

x='andi'
print re.search('an[.]+',x)
Run Code Online (Sandbox Code Playgroud)

它回来了None.它是否匹配字符串.在文档中,.(点)可以表示任何字符.并且+意味着重复1次或更多次.所以[.]+,它应该d在字符串中匹配.

谁能解释一下?为什么会回来None

python regex

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

tcl:从字符串中获取数字的最简单方法?

嗨,让我说我有几个名字:orange12 , blue124 , red909 ,我想抓住索引号,在这种情况下:12,124和909.通常,我可以使用'字符串范围第一个'提取子字符串.并获得第一个最后我将使用'string len orange'和'string len orange12'.现在我正在寻找另一种方式来做到这一点.

作为比较,在python中,我可以做类似的事情:

'orange12'.split('orange')[1]
'blue124'.split('blue')[1]
'red909'.split('red')[1]
Run Code Online (Sandbox Code Playgroud)

我怎样才能在tcl中做类似的事情?我尝试了tcl中的'split',但似乎很复杂,无法使其工作.在tcl中我怎么能用一个词(不是字符)分开?

谢谢

string split extract tcl

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

Google 工作表:如何添加链接以跳转到其他工作表的特定单元格

在处理电子表格时,我需要一个“按钮”来链接或跳转到同一电子表格中其他工作表的特定单元格。

如果我在单元格上添加图像,那么我可以分配一个脚本函数并且它工作正常。但我希望图像位于单元格内部而不是单元格上方。问题是,如果我将图像放入单元格内,我将无法再单击它(或无法分配脚本)。

google-sheets google-apps-script

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

查询忽略字符串(非数字)值

我有这个简单的谷歌表:

在此输入图像描述

在C2中,我使用简单的查询:

=query({A2:A15},"select Col1")
Run Code Online (Sandbox Code Playgroud)

但所有非数字值都被跳过。为什么 ?

google-sheets google-query-language google-sheets-formula

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

打破内部列表理解

我有datalist和filterlist,我想使用list comprehension方法搜索datalist中的任何项,其中的字符串包含filterlist中的任何单词:

>>> datalist=['mytest123orange','dark angle','double69','spartan','broken image 999','2 cup of tea'] 
>>> filterlist=['test','2','x','123','orange']
>>> print [i for i in datalist if len([ j for j in filterlist if j in i])>0 ]
['test123orange', '2 cup of tea']
Run Code Online (Sandbox Code Playgroud)

它正如我想要的那样工作.但问题是,要从中获取值len([ j for j in filterlist if j in i ])>0,它将需要循环过滤器列表中的所有项.因此,即使它与filterlist中的第一项匹配,循环也必须经历直到结束.例如,当尝试检查时'mytest123orannge',如果filterlist中的测试已经匹配,那么就足够了,我想"打破"循环,所以我不想循环其余的.所以我不需要匹配'orange''2''123'.

我的问题:

  1. 我怎么能在那个循环里面打破?
  2. 还有其他更好的方法吗?

python list break

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