我在Python中有一个Unicode字符串,我想删除所有的重音符号(变音符号).
我在Web上发现了一种在Java中执行此操作的优雅方法:
我是否需要安装pyICU等库?或者只使用python标准库?那python 3怎么样?
重要说明:我想避免代码使用重音字符到非重音符号的显式映射.
我喜欢WinSCP for Windows.什么是最好的Linux等效软件?
我尝试使用sshfs在我的本地机器上安装远程文件系统,但它不像简单地启动GUI那样用户友好,而且它似乎需要在客户端机器上进行root访问,这不是很方便.
当然命令行工具如scp是可能的,但我正在寻找一个简单的GUI.
我最近学习了Ruby编程语言,总而言之,它是一门很好的语言.但我很惊讶地发现它并不像我预期的那么简单.更准确地说,"最不惊讶的规则"对我来说似乎并不受到尊重(当然这是非常主观的).例如:
x = true and false
puts x # displays true!
Run Code Online (Sandbox Code Playgroud)
和着名的:
puts "zero is true!" if 0 # zero is true!
Run Code Online (Sandbox Code Playgroud)
你会警告一个Ruby新手的其他"问题"是什么?
在C++类(或其任何父类)中至少有一个虚方法意味着该类将具有虚拟表,并且每个实例都将具有虚拟指针.
所以内存成本非常清晰.最重要的是实例上的内存开销(特别是如果实例很小,例如,如果它们只是包含一个整数:在这种情况下,在每个实例中都有一个虚拟指针可能会使实例的大小加倍.至于虚拟表占用的内存空间,我猜它与实际方法代码占用的空间相比通常可以忽略不计.
这让我想到了一个问题:是否有一个可衡量的性能成本(即速度影响)使方法虚拟化?在每次方法调用时,运行时都会在虚拟表中进行查找,因此如果对此方法进行非常频繁的调用,并且此方法非常短,那么可能会出现可测量的性能损失?我想这取决于平台,但有没有人运行一些基准测试?
我问的原因是我遇到了一个错误,这个错误恰好是由于程序员忘记定义一个虚拟方法.这不是我第一次看到这种错误.我想:我们为什么要添加虚拟关键字,而不是需要时取出时,我们绝对相信这是它的虚拟关键字没有必要?如果性能成本很低,我想我会在我的团队中推荐以下内容:只需在默认情况下将每个方法设置为虚拟,包括每个类中的析构函数,并且只在需要时将其删除.这对你来说听起来很疯狂吗?
我一直在寻找一种优雅而有效的方法,将一个字符串块化为Ruby中给定长度的子字符串.
到目前为止,我能想到的最好的是:
def chunk(string, size)
(0..(string.length-1)/size).map{|i|string[i*size,size]}
end
>> chunk("abcdef",3)
=> ["abc", "def"]
>> chunk("abcde",3)
=> ["abc", "de"]
>> chunk("abc",3)
=> ["abc"]
>> chunk("ab",3)
=> ["ab"]
>> chunk("",3)
=> []
Run Code Online (Sandbox Code Playgroud)
您可能想要chunk("", n)返回[""]而不是[].如果是这样,只需将其添加为方法的第一行:
return [""] if string.empty?
Run Code Online (Sandbox Code Playgroud)
你会推荐更好的解决方案吗?
编辑
感谢Jeremy Ruten提供的优雅高效的解决方案:
def chunk(string, size)
string.scan(/.{1,#{size}}/)
end
Run Code Online (Sandbox Code Playgroud) 可视化TensorFlow图形的官方方法是使用TensorBoard,但有时我只想在Jupyter工作时快速查看图形.
是否有快速解决方案,理想情况下基于TensorFlow工具或标准SciPy软件包(如matplotlib),但如果有必要基于第三方库?
是否有更短的方法来要求位于同一目录中的文件(正在执行的脚本)?
require File.expand_path(File.dirname(__FILE__) + '/some_other_script')
Run Code Online (Sandbox Code Playgroud)
我读了这个require "my_script"并且require "./my_script"实际上会加载脚本两次(ruby不会认识到它实际上是同一个脚本),这File.expand_path就是推荐的原因:如果每次需要脚本时都使用它,那么它只会被加载一旦.
对我来说,像Ruby这样的简洁语言似乎没有更短的解决方案,这似乎很奇怪.例如,python只是这个:
import .some_other_module_in_the_same_directory
Run Code Online (Sandbox Code Playgroud)
我想我可以修补猴子require......但这只是邪恶的!;-)
在python中,模块不必具有 main函数,但通常的做法是使用以下习语:
def my_main_function():
... # some code
if __name__=="__main__": # program's entry point
my_main_function()
Run Code Online (Sandbox Code Playgroud)
我知道红宝石不具备有一个main方法要么,但有某种我应遵循最佳实践?我应该说出我的方法main或其他什么?
作为旁注,我在python中也看到了以下习语:
def my_main_function(args=[]):
... # some code
if __name__=="__main__": # program's entry point
import sys
sys.exit(my_main_function(sys.argv))
Run Code Online (Sandbox Code Playgroud) 我可以想象两个设置:
负载平衡然后缓存
+-- Cache server #1 (varnish) -- App server #1
/
Load Balancer (haproxy)-+---- Cache server #2 (varnish) -- App server #2
\
+-- Cache server #3 (varnish) -- App server #3
Run Code Online (Sandbox Code Playgroud)
缓存然后负载平衡
+-- App server #1
/
Cache Server (varnish) --- Load Balancer (haproxy) --+---- App server #2
\
+-- App server #3
Run Code Online (Sandbox Code Playgroud)
第一个设置的问题是有多个缓存,这会浪费大量内存并使缓存更加复杂.
第二个设置的问题是可能会出现性能损失和两个单点故障(varnish和haproxy)而不是一个(haproxy)?
我很想接受第二种设置,因为haproxy和varnish都应该快速而稳定:您的意见是什么?
我有两个子目录,每个子目录都有一个repo,因此:
PPP/
|--ABC/
| |--.git/
| |--AAA/
| | BBB/
| | CCC/
|
|--DEF/
| |--.git/
| |--DDD/
| |--EEE/
Run Code Online (Sandbox Code Playgroud)
并且想将它们组合成一个repo,所以,我认为目录结构将是这样的:
PPP/
|--.git/
|--ABC/
| |--AAA/
| |--BBB/
| |--CCC/
|
|--DEF/
| |--DDD/
| |--EEE/
Run Code Online (Sandbox Code Playgroud)
这是真的吗?
目前还有几个人在他们的机器上有回购.生活有多复杂?
助教.
ruby ×4
architecture ×1
c++ ×1
chunking ×1
diacritics ×1
directory ×1
git ×1
haproxy ×1
jupyter ×1
linux ×1
main-method ×1
merge ×1
path ×1
performance ×1
python ×1
python-2.x ×1
python-3.x ×1
require ×1
scp ×1
string ×1
subdirectory ×1
tensorboard ×1
tensorflow ×1
unicode ×1
varnish ×1
winscp ×1