我尝试做一个简单的字符串替换,但我不知道为什么它似乎不起作用:
X = "hello world"
X.replace("hello", "goodbye")
Run Code Online (Sandbox Code Playgroud)
我想将单词更改hello
为goodbye
,因此它应该将字符串更改"hello world"
为"goodbye world"
.但X仍然存在"hello world"
.为什么我的代码不起作用?
Python中常见的反模式是+
在循环中连接一系列字符串.这很糟糕,因为Python解释器必须为每次迭代创建一个新的字符串对象,并最终获得二次时间.(在某些情况下,CPython的最新版本显然可以优化它,但是其他实现不能,因此不鼓励程序员依赖它.)''.join
是正确的方法.
不过,我听人说(这里包括对堆栈溢出),你应该永远不会使用+
字符串连接,而是始终使用''.join
或格式字符串.我不明白为什么如果你只是连接两个字符串就是这种情况.如果我的理解是正确的,它不应该花费二次时间,我认为a + b
比任何一个''.join((a, b))
或更清晰,更可读'%s%s' % (a, b)
.
+
用于连接两个字符串是一种好习惯吗?还是有一个我不知道的问题?
由于我在这个帖子的回答中的评论,我想知道+=
运营商和运营商之间的速度差异''.join()
那两者之间的速度比较是什么?
我继承了一些Python代码,用于创建巨大的表(最多19列宽5000行).在屏幕上绘制表格需要9秒钟.我注意到使用以下代码添加了每一行:
sTable = sTable + '\n' + GetRow()
Run Code Online (Sandbox Code Playgroud)
哪里sTable
是一个字符串.
我把它改为:
sTable += '\n' + GetRow()
Run Code Online (Sandbox Code Playgroud)
我注意到桌子现在出现了六秒钟.
然后我改为:
sTable += '\n%s' % GetRow()
Run Code Online (Sandbox Code Playgroud)
基于这些Python性能提示(仍然是六秒).
由于这被称为大约5000次,它突出了性能问题.但为什么会有这么大的差异呢?为什么编译器没有在第一个版本中发现问题并对其进行优化?
我已经快速阅读了Java8 String api文档.
现在我对String.join()方法很好奇,以便连接/连接字符串.
这种例子帮助我更好地理解了:
//Old way:
String str1 = "John";
String str2 = "Doe";
String result = str1 + " " +str2;
//or by using str1.concat(str2);
//New way:
String result = String.join(" ", str1, str2);
Run Code Online (Sandbox Code Playgroud)
不过,我不明白应该使用哪一个.这两个过程之间是否有任何性能或其他差异.
任何帮助将不胜感激.
我正在用 python 做一些事情,我有几个由很长的公式计算的变量。我在这个网站上做了一些搜索,我发现 python 允许隐式换行,这对我来说是一个解决方案,因为我可以将公式扩展到多行: 换行
现在,我一直在以不同的方式工作。让我举个例子,如果 A 由以下公式给出:
A = b + c + d + e
Run Code Online (Sandbox Code Playgroud)
我会将其编码为:
A = b + c
A += d + e
Run Code Online (Sandbox Code Playgroud)
我想知道什么是首选方法。与我当前的方法相比,使用隐式换行是否有计算优势?
python ×6
string ×5
.net ×1
c# ×1
function ×1
html ×1
java ×1
java-8 ×1
list ×1
optimization ×1
performance ×1
python-3.x ×1
replace ×1