用于循环步骤(For loop with step)
我创建了一个python脚本,它可以根据指定的step函数遍历一系列值。
#!/usr/bin/python def mul(value, step): return value * step def inc(value, step): return value + step def step_range(start, end, step, func): while start <= end: yield start start = func(start, step) def main(): for x in step_range(1, 64, 2, mul): print '%d, '%(x), print for x in step_range(0, 64, 8, inc): print '%d, '%(x), if __name__ == '__main__': main()
输出:
$ python test.py 1, 2, 4, 8, 16, 32, 64, 0, 8, 16, 24, 32, 40, 48, 56, 64,
无论如何,我可以摆脱辅助功能,以便用户可以做这样的事情?
for x in step_range(1, 64, *2): ... def step_range(start, end, step): while start <= end: yield start start = start ?step?
这个
?
标志着我陷入困境......我看着operator
模块,但我必须知道mul(a, b)
两个参数并add(a, b)
函数。I have created a python script that can loop over a range of values based on a specified step function.
#!/usr/bin/python def mul(value, step): return value * step def inc(value, step): return value + step def step_range(start, end, step, func): while start <= end: yield start start = func(start, step) def main(): for x in step_range(1, 64, 2, mul): print '%d, '%(x), print for x in step_range(0, 64, 8, inc): print '%d, '%(x), if __name__ == '__main__': main()
Output:
$ python test.py 1, 2, 4, 8, 16, 32, 64, 0, 8, 16, 24, 32, 40, 48, 56, 64,
Is there anyway I can get rid of the helper functions so that the user can do something like this?
for x in step_range(1, 64, *2): ... def step_range(start, end, step): while start <= end: yield start start = start ?step?
The
?
marks where I am stumped... I looked into theoperator
module but I would have to know both parameters for themul(a, b)
andadd(a, b)
functions.
原文:https://stackoverflow.com/questions/19171507
更新时间:2023-11-20 20:11
最满意答案
假设您将在类似于
matches
方法的机制中使用正则表达式,那么您可能正在寻找类似的东西^(?!.*(--| )).*$
Assuming that you will use your regex in mechanism similar to
matches
method you may be looking for something like^(?!.*(--| )).*$
相关问答
更多-
我认为你正在寻找这种负面的前瞻性正则表达式 : regex = re.compile(r"^(?!.*(?:€|£|\b(?:Euro?|Pound|GBP|Yen|JPY)\b))", re.UNICODE | re.I) 如果在输入中找到上述任何字符串,则基本上会使匹配失败。 请注意, €和£不需要\b (单词边界),因为这些货币符号不被视为单词字符。 I think you're looking for this negative lookahead regex: regex = re.compil ...
-
尝试在那里放一个单词break \b : on mondays?\b(?!\s*(and|[&,])) http://regex101.com/r/yW6fL4/1 Try putting a word break \b in there: on mondays?\b(?!\s*(and|[&,])) http://regex101.com/r/yW6fL4/1
-
我相信这就是你要找的东西: (?!\s*
的第一个角色之后。 另外,加上/? 对于前瞻,你不必使用非贪婪的量词。 I believe this is what you're looking for: (?!\s* 我没有找到只返回[“Safari”]的方法,但我发现识别浏览器,这是我的目标,使用模式对象中的test()方法要好得多。 一些例子: /^(?!.*(ipad|chrome)).*safari.*$/i.test(navigator.userAgent); // true for Safari /^(?!.*(ipad|chrome)).*windows.*safari.*$/i.test(navigator.userAgent); // true only for Safari in Windows /i ...在字符串中保留单个破折号和单个空格 - 负向前瞻[关闭](Keep Single dashes and single space in string - Negative Lookahead [closed])[2022-12-01]
假设您将在类似于matches方法的机制中使用正则表达式,那么您可能正在寻找类似的东西 ^(?!.*(--| )).*$ Assuming that you will use your regex in mechanism similar to matches method you may be looking for something like ^(?!.*(--| )).*$您可以嵌套先行断言: ((?:(?!(?!\d*000)\d{3,6}).)*) 说明: ( # Match/capture in group 1: (?: # Start of non-capturing group. (?! # Assert that it's impossible to match... (?!\d*000) # (unless it's a number that contains 000) \d{3,6 ...环顾四周开始在位置上做事,而不是在角色上。 所以,使用字符串"abc" ,这部分正则表达式:( (?!abc). 开始向前看你的字符串中"a" 之前的位置 。 该位置是"a"之前的空字符串。 这就是它无法匹配的原因。 Look-arounds start doing their thing on positions, not on characters. So, with the string "abc", this part of your regex: (?!abc). starts looking a ...消极的向前看与完全不同于否定表达,我认为是你正在寻找的。 我不记得很多Drools 3,但你可能不得不使用eval表达式来否定它。 所以你的决策表单元格看起来像 eval( ! getFirstName().matches("($param)") ) 基本上,您调用的是纯Java表达式,而不是使用提供的匹配运算符。 The best solution I've found is to split this into multiple conditions. I wish I could place the ...使用单词边界( \b )将为您提供所需的内容。 Javascript示例: /(?!The|Cross)(\b\w+ )Street/.test('Main Street') // => true /(?!The|Cross)(\b\w+ )Street/.test('Bank Street') // => true /(?!The|Cross)(\b\w+ )Street/.test('The Street') // => false /(?!The|Cross)(\b\w+ )Street/.test( ...C#regexp负向前瞻(C# regexp negative lookahead)[2021-02-25]
Regex.Replace()是全局的。 它将替换模式匹配*的次数 。 您可以使用Regex.Replace(String, String, Int32)来限制操作数。 string result = rgx.Replace(str, "33", 1); 或者您将模式更改为后视。 Regex rgx = new Regex(@"(?<=1)a{2}"); string result = rgx.Replace(str, "33"); *请注意, Replace()是全局的 ,但不是增量的 。 使用"aa ...相关文章
更多- 数据库设计 Step by Step (1)
- 数据库设计 Step by Step (1)——扬帆启航
- 数据库设计 Step by Step (1)——扬帆启航
- Solr/Lucene分布式搜索,Solr Integrate katta step3
- Solr/Lucene分布式搜索,Solr Integrate katta step2
- Solr/Lucene分布式搜索,Solr Integrate katta step1
- Lua循环遍历
- java WHILE 循环问题
- Java循环结构 – for, while 及 do…while
- bash shell循环的疑问
最新问答
更多- h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
- 创建一个功能(Create a function)
- 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
- PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
- Qt冻结循环的原因?(Qt freezing cause of the loop?)
- TableView重复youtube-api结果(TableView Repeating youtube-api result)
- 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
- SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
- 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
- 以编程方式创建UITableView(Creating a UITableView Programmatically)
- 如何打破按钮上的生命周期循环(How to break do-while loop on button)
- C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
- 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
- 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
- Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
- 设置kotlin扩展名(Setting a kotlin extension)
- 如何并排放置两个元件?(How to position two elements side by side?)
- 如何在vim中启用python3?(How to enable python3 in vim?)
- 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
- 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
- Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
- dedecms如何安装?
- 在哪儿学计算机最好?
- 学php哪个的书 最好,本人菜鸟
- 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
- 如何覆盖错误堆栈getter(How to override Error stack getter)
- 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
- USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
- 电脑高中毕业学习去哪里培训
- 正则表达式验证SMTP响应(Regex to validate SMTP Responses)