- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我发现一个有趣的事情,当在分隔符之后获取整个子字符串时,partition
比 split
更快。我已经在 Python 3.5 和 3.6 (Cpython) 中测试过
In [1]: s = 'validate_field_name'
In [2]: s.partition('_')[-1]
Out[2]: 'field_name'
In [3]: s.split('_', maxsplit=1)[-1]
Out[3]: 'field_name'
In [4]: %timeit s.partition('_')[-1]
220 ns ± 1.12 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [5]: %timeit s.split('_', maxsplit=1)[-1]
745 ns ± 48.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [6]: %timeit s[s.find('_')+1:]
340 ns ± 1.44 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
我查看了 Cpython 源代码,发现 partition
使用了 FASTSEARCH
算法,参见 here .并且 split
仅在分隔符字符串的长度大于 1 时使用 FASTSEARCH
,参见 here .但是我已经在长度较大的 sep 字符串上进行了测试。我得到了相同的结果。
我猜原因是 partition
返回一个三元素元组,而不是一个列表。
我想了解更多详情。
最佳答案
微基准可能会产生误导
py -m timeit "'validate_field_name'.split('_', maxsplit=1)[-1]"
1000000 loops, best of 3: 0.568 usec per loop
py -m timeit "'validate_field_name'.split('_', 1)[-1]"
1000000 loops, best of 3: 0.317 usec per loop
仅将参数作为位置或关键字传递会显着改变时间。所以我猜另一个分区更快的原因是,因为它不需要第二个参数......
关于Python:为什么 partition(sep) 比 split(sep, maxsplit=1) 快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47898526/
我发现一个有趣的事情,当在分隔符之后获取整个子字符串时,partition 比 split 更快。我已经在 Python 3.5 和 3.6 (Cpython) 中测试过 In [1]: s = 'v
我尝试将我的大数据框打印到 csv 文件,但制表符分隔 sep='\t'不起作用。然后我用换行符进行测试 sep='\n' ,看起来工作正常,用换行符打破所有元素。这里可能有什么问题? 代码很简单 d
使用 titleFormat 我有: $calendar.fullCalendar({ titleFormat: { month: 'MMMM yyyy',
正如我们所知,Windows 接受 "\" 和 "/" 作为分隔符。但是在python中,使用的是"\"。例如,调用 os.path.join("foo","bar"),将返回 'foo\\bar'。
从以下字符串“test S9.98 Sep”中,我想删除数字前面的 S。但不是来自使用 RegEx 的“test”或“Sep”。 我试过了 string result = Regex.Replace(
我正在为 MiRLAB 包的 R 教程苦苦挣扎,尽管我不确定问题是否与包的功能有关。 我想使用函数 Pearson(),它只接受 .csv 文件。我已经完美地加载了一个文件,但是当我尝试使用 Pear
一切都在标题中:) 我正在使用 org.json.CDL 将 JSONArray 转换为 CSV 数据,但它会呈现一个以“,”作为分隔符的字符串。我想知道是否可以用';'代替? 这是我正在做的一个简单
本文整理了Java中org.lilyproject.sep.ZooKeeperItfAdapter类的一些代码示例,展示了ZooKeeperItfAdapter类的具体用法。这些代码示例主要来源于Gi
我试图在 Freemarker 中的 迭代中迭代 JSON 对象,并以不同的形式写出相同的 JSON。对于某些情况,我想跳过迭代并且不写出任何内容,但 Freemakrer 仍然写出逗号,因为我使用
我有一个大文件,有一些规则的模式 snaps1: Counter: 4966 Opens: Counter:
我在我的网站上注意到,http://www.cscc.org.sg/ , 出现了这个奇怪的符号。 它说 L SEP。在 HTML 代码中,它显示相同的内容。 有人可以告诉我如何删除它们吗? 最佳答案
他们是一样的,但是我应该使用哪一个? http://docs.python.org/library/os.html : os.sep The character used by the operati
我尝试在第一页 hello world 中使用 Dust.js 模板引擎,但未能使用 {@sep} 标记,模板已编译并生成输出,但不是逗号 {@sep},{/sep} http://jsfiddle.
我无法使用括号作为分隔符来分隔列: d = data.frame(a = c('af(dsf', 'sdf (asdf', 'sdf(df')) d %>% separate(a, c('a','b'
我正在尝试读取使用 :: 作为列分隔符的文件: userID::MovieID::Rating::Timestamp 1::1193::5::978300760 1::661::3::97830210
标签 (id_tag,name) 新闻(id、标题、数据、标签) 字段 news>tags 是一个 varchar(255)。我打算将这样的数据放在该字段中:“1,7,34” 这意味着 news 中的
我正在学习 Python,只是想弄清楚如何打印多个 "*" 字符,这些字符由破折号分隔,但星号和破折号的数量可以通过用户。 这是我目前所拥有的: print('*' * n, sep = '-' *
这个问题在这里已经有了答案: Create list of single item repeated N times (9 个回答) How to print a list using splat-
数据: from io import StringIO import pandas as pd s = '''ID,Level,QID,Text,ResponseID,responseText,dat
我知道这通常是个坏主意,我已经阅读了 - 特别是 this question . 然而,总的规范化路线似乎更复杂,并且会给我和我的代码更多的障碍来跳过。这是我的场景: 我正在构建一个测试创建系统,用户
我是一名优秀的程序员,十分优秀!