当前位置: 首页 > wzjs >正文

手游app平台推广微信xiala5济南优化网站价格

手游app平台推广微信xiala5,济南优化网站价格,西安网站建设服务商十强,正规做网站公司相关文章:为什么.net过了20几年才支持SPLIT(字符串)分割方式,一直只能用单个字符 Python 是由荷兰人吉多・范罗苏姆(Guido van Rossum)于 1989 年发明的1。 1989 年圣诞节期间,吉多・范罗苏姆为了打发时间,决心开发一个新的脚本解…

相关文章:为什么.net过了20几年才支持SPLIT(字符串)分割方式,一直只能用单个字符

Python 是由荷兰人吉多・范罗苏姆(Guido van Rossum)于 1989 年发明的1。

1989 年圣诞节期间,吉多・范罗苏姆为了打发时间,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承2。1991 年 2 月,第一个 Python 解释器诞生,它是用 C 语言实现的,可以调用 C 语言的库函数2

以下是 C++ 和 Python 对字符串分割功能的支持历史:

C++ 的字符串分割支持

C++ 标准库在早期(如 C++98/03)并未提供类似 Split 的内置函数,开发者需手动实现或使用第三方库(如 Boost)。以下是关键时间节点:

  1. Boost 库(2002 年左右)
    Boost.StringAlgorithms 库提供了 split 函数,支持按字符串分割:cpp

    #include <boost/algorithm/string.hpp>
    std::vector<std::string> results;
    boost::split(results, "a,b,c", boost::is_any_of(","));
    
  2. C++11(2011 年)
    标准库引入了 std::regex,可通过正则表达式实现字符串分割,但语法较复杂:cpp

    #include <regex>
    std::string s = "a,b,c";
    std::regex re(",");
    std::sregex_token_iterator iter(s.begin(), s.end(), re, -1);
    std::sregex_token_iterator end;
    std::vector<std::string> tokens(iter, end);
    
  3. C++20(2020 年)
    引入了 std::ranges 和 std::views::split,支持更简洁的字符串分割:cpp

    #include <ranges>
    #include <string>
    #include <vector>std::string s = "hello world";
    auto words = s | std::views::split(' ');
    std::vector<std::string> tokens;
    for (auto&& word : words) {tokens.emplace_back(word.begin(), word.end());
    }
    

Python 的字符串分割支持

Python 从早期版本就提供了 split() 方法,并且始终支持按字符串分割

  1. Python 1.0(1994 年)
    已包含 split() 方法,但仅支持按单个字符分割:python

    "a,b,c".split(',')  # ['a', 'b', 'c']
    
  2. Python 2.0(2000 年)
    增强了 split() 方法,支持按字符串分割:

    "ab-cd".split("-")  # ['ab', 'cd']
    
  3. Python 3.0(2008 年)
    继续保留并改进了 split() 方法,用法与现代版本一致:python

    "hello world".split(" ")  # ['hello', 'world']
    

对比总结

语言首次支持按字符串分割关键版本
Python2000 年(Python 2.0)原生支持,语法简洁
C++2002 年(Boost 库)标准库直到 C++20(2020年)才提供简洁 API
VB.NET2021 年(.NET 6)通过重载支持,历史兼容性问题

为什么 Python 能更早支持?

  • 动态语言优势:Python 作为动态语言,无需担心类型转换问题,设计更灵活。
  • 简洁优先:Python 强调 “用一种明显的方式解决问题”,字符串分割是高频需求。
  • 后发优势:Python 1.0 发布于 1994 年,比 .NET(2002 年)早 8 年,有更多时间优化 API。

而 .NET 和 C++ 受限于静态类型系统、向后兼容性要求,以及多语言生态的复杂性,改进过程更为谨慎


关于 Python 早期版本对字符串分割的支持,需要先澄清一个关键点:Python 从诞生起就支持按单个字符分割字符串,但早期版本(如 Python 1.0)的 split() 方法默认仅按单个字符(如空格、逗号)拆分,而不支持直接按字符串(如多个字符组成的分隔符,如 "--")拆分。直到 Python 2.0(2000 年) 才明确支持按字符串作为分隔符。

2000 年之前(Python 1.x 时代)如何拆分字符串?

在 Python 2.0 之前(1994-2000 年),若需要按字符串分隔符(如 "--")拆分数据,开发者需要通过以下替代方法实现:

1. 使用循环手动拆分(低效但直接)

通过遍历字符串,逐个字符检查是否匹配分隔符的每个字符,遇到完整匹配时分割字符串。
示例:拆分 "abc--123" 为 ["abc", "123"] python

s = "abc--123"
delimiter = "--"
result = []
start = 0while True:# 查找分隔符位置pos = s.find(delimiter, start)if pos == -1:# 无剩余分隔符,添加剩余部分result.append(s[start:])breakelse:# 添加分隔符前的部分result.append(s[start:pos])# 跳过分隔符,继续查找start = pos + len(delimiter)print(result)  # ['abc', '123']
2. 使用字符串替换(适用于简单场景)

将分隔符替换为单个字符(如逗号),再按单个字符拆分。
示例:先将 "--" 替换为 ",",再拆分 python

s = "abc--123"
temp = s.replace("--", ",")  # 替换为单个分隔符
result = temp.split(",")     # 按单个字符拆分
print(result)  # ['abc', '123']

局限性:若原字符串包含其他需要保留的单个分隔符(如 ","),此方法会导致混淆。

3. 使用正则表达式(Python 1.5+ 引入 re 模块)

Python 1.5(1997 年)正式引入 re 模块,可通过正则表达式实现灵活拆分。
示例:用正则表达式匹配 "--" 分隔符

import res = "abc--123"
result = re.split("--", s)
print(result)  # ['abc', '123']

优势:正则表达式支持复杂分隔符模式(如 "--" 或 "..."),且效率高于手动循环。
注意:早期 Python 的正则表达式语法与现代略有差异,但基本功能已可用。

为什么 Python 早期不支持按字符串拆分?

  1. 设计取舍
    Python 1.x 设计目标是 “简洁易用”,早期 split() 方法定位为简单的单字符拆分工具,复杂场景推荐使用正则表达式(符合 “每个问题应有一个最优解” 的设计哲学)。

  2. 向后兼容性
    若早期版本直接支持字符串分隔符,可能导致旧代码(依赖单字符拆分逻辑)意外出错。Python 2.0 作为重大版本更新,才敢引入此功能。

  3. 历史背景
    2000 年之前,字符串处理需求以简单场景为主(如按空格、逗号拆分),复杂分隔符场景较少,开发者更习惯用正则表达式处理复杂情况。

总结:2000 年前的开发习惯

  • 简单拆分:直接用 split('单字符')(如 split(','))。
  • 复杂拆分:优先使用正则表达式(re.split()),或手动编写拆分逻辑。
  • Python 2.0(2000 年)的改进:让 split() 直接支持字符串分隔符(如 split("--")),简化了常见场景的代码量,但并未完全替代正则表达式的灵活性。

这一演变体现了 Python 社区对 “简洁” 与 “兼容性” 的平衡 —— 早期通过正则表达式覆盖复杂需求,后期通过版本更新逐步增强原生功能。


文章转载自:

http://llWy18WS.qbmjf.cn
http://O4EJfLAz.qbmjf.cn
http://vxVbMIvo.qbmjf.cn
http://KYd7iFVZ.qbmjf.cn
http://wlVXaJOF.qbmjf.cn
http://50sFBP1q.qbmjf.cn
http://ZuaX7LjA.qbmjf.cn
http://qYcSuuOh.qbmjf.cn
http://4M1aXcGt.qbmjf.cn
http://sD8S5N9p.qbmjf.cn
http://9EN6NxZN.qbmjf.cn
http://HhwPkGyr.qbmjf.cn
http://BVoWfkK4.qbmjf.cn
http://wnKsSb82.qbmjf.cn
http://PyBc7ueh.qbmjf.cn
http://V9rLnv4j.qbmjf.cn
http://Vh7X5X7C.qbmjf.cn
http://Afp4NNze.qbmjf.cn
http://13einHT8.qbmjf.cn
http://8b9UcGeI.qbmjf.cn
http://4Fi7oOB3.qbmjf.cn
http://t1NMfXwu.qbmjf.cn
http://RaGV5vjt.qbmjf.cn
http://ZEuZhLHh.qbmjf.cn
http://BmQsqsd8.qbmjf.cn
http://W5ujFQsG.qbmjf.cn
http://1wtmoQNr.qbmjf.cn
http://SF6cGpRu.qbmjf.cn
http://JNicR4xF.qbmjf.cn
http://RvzGV1bL.qbmjf.cn
http://www.dtcms.com/wzjs/690971.html

相关文章:

  • 定制营销型网站平面设计兼职接单
  • 网站建设公司汕头的东莞知名企业排名
  • 图列说明网站开发的流程关于网站集约化建设的意见
  • 创建个人主页网站网站首页模板图片
  • 别样网站建设黑龙江省住房和城乡建设信息网
  • 给孩子做衣服的网站工信局网站备案查询
  • 界面官方网站网站开发与发布
  • 浏阳网站制作公司wordpress游戏小程序
  • 滕州网站架设wordpress主题 电影
  • 山东专业网站建设wordpress导购主题免费
  • js实现网站浮动窗口优秀的ui设计案例分析
  • 厦门自助网站建设报价建的企业网站如何在百度搜到
  • 高埗镇网站建设公司投资网站网站源码
  • 上海网站开发企业深圳福田专业网站推广
  • 一个公司做两个网站宁波网站建设开发公司
  • 网站有哪些费用多少钱购票网站模板
  • 网站什么也没动怎么不收录啦凡客陈年
  • 网站开发哪家好wordpress黄聪文件上传
  • 微信网站模板免费下载百度app智能小程序
  • apache多网站配置wordpress淘宝客网站运营
  • 优秀国外设计网站app做网站的行情
  • 云畅网站建设涉县住房和城乡规划建设局网站
  • 用asp做网站需要准备什么木疙瘩h5制作
  • 深圳 企业网站建设制作网站公司价格
  • 东昌府区建设局网站php网站开发 pdf
  • 小型企业建设网站河南金建建设有限公司网站
  • .net做网站的优缺点企业可以做哪些网站有哪些内容
  • 网站维护开发合同深圳网络优化有限公司
  • 网站方案建设书怎么写巨久科技网站建设
  • 网站开发流程 ppt建设银行网站用户名怎么查