小编Min*_*ark的帖子

删除Python unicode字符串中重音的最佳方法是什么?

我在Python中有一个Unicode字符串,我想删除所有的重音符号(变音符号).

我在Web上发现了一种在Java中执行此操作的优雅方法:

  1. 将Unicode字符串转换为长标准化形式(字母和变音符号使用单独的字符)
  2. 删除Unicode类型为"变音符号"的所有字符.

我是否需要安装pyICU等库?或者只使用python标准库?那python 3怎么样?

重要说明:我想避免代码使用重音字符到非重音符号的显式映射.

python unicode diacritics python-2.x python-3.x

462
推荐指数
12
解决办法
23万
查看次数

是否有任何类似于Linux的WinSCP?

我喜欢WinSCP for Windows.什么是最好的Linux等效软件?

我尝试使用sshfs在我的本地机器上安装远程文件系统,但它不像简单地启动GUI那样用户友好,而且它似乎需要在客户端机器上进行root访问,这不是很方便.

当然命令行工具如scp是可能的,但我正在寻找一个简单的GUI.

linux scp winscp

171
推荐指数
11
解决办法
30万
查看次数

什么是Ruby Gotchas新手应该被警告?

我最近学习了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新手的其他"问题"是什么?

ruby

106
推荐指数
16
解决办法
1万
查看次数

在C++类中使用虚方法的性能成本是多少?

在C++类(或其任何父类)中至少有一个虚方法意味着该类将具有虚拟表,并且每个实例都将具有虚拟指针.

所以内存成本非常清晰.最重要的是实例上的内存开销(特别是如果实例很小,例如,如果它们只是包含一个整数:在这种情况下,在每个实例中都有一个虚拟指针可能会使实例的大小加倍.至于虚拟表占用的内存空间,我猜它与实际方法代码占用的空间相比通常可以忽略不计.

这让我想到了一个问题:是否有一个可衡量的性能成本(即速度影响)使方法虚拟化?在每次方法调用时,运行时都会在虚拟表中进行查找,因此如果对此方法进行非常频繁的调用,并且此方法非常短,那么可能会出现可测量的性能损失?我想这取决于平台,但有没有人运行一些基准测试?

我问的原因是我遇到了一个错误,这个错误恰好是由于程序员忘记定义一个虚拟方法.这不是我第一次看到这种错误.我想:我们为什么要添加虚拟关键字,而不是需要时取出时,我们绝对相信这是它的虚拟关键字没有必要?如果性能成本很低,我想我会在我的团队中推荐以下内容:只需在默认情况下将每个方法设置为虚拟,包括每个类中的析构函数,并且只在需要时将其删除.这对你来说听起来很疯狂吗?

c++ performance virtual-functions

103
推荐指数
5
解决办法
3万
查看次数

在Ruby中将字符串切割成给定长度的块的最佳方法是什么?

我一直在寻找一种优雅而有效的方法,将一个字符串块化为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)

ruby string chunking

85
推荐指数
5
解决办法
3万
查看次数

在Jupyter中可视化TensorFlow图的简单方法?

可视化TensorFlow图形的官方方法是使用TensorBoard,但有时我只想在Jupyter工作时快速查看图形.

是否有快速解决方案,理想情况下基于TensorFlow工具或标准SciPy软件包(如matplotlib),但如果有必要基于第三方库?

graph-visualization jupyter tensorflow tensorboard

59
推荐指数
4
解决办法
4万
查看次数

有没有更短的方法来在ruby中的同一目录中要求一个文件?

是否有更短的方法来要求位于同一目录中的文件(正在执行的脚本)?

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......但这只是邪恶的!;-)

ruby path require

56
推荐指数
3
解决办法
3万
查看次数

我应该在ruby脚本中定义一个main方法吗?

在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)

ruby main-method

48
推荐指数
3
解决办法
2万
查看次数

在漆膜前面或在其他方面的Haproxy?

我可以想象两个设置:

负载平衡然后缓存

                          +-- 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都应该快速而稳定:您的意见是什么?

architecture haproxy varnish

44
推荐指数
2
解决办法
2万
查看次数

我可以将.git目录移动到它的父目录吗?

我有两个子目录,每个子目录都有一个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)

这是真的吗?

目前还有几个人在他们的机器上有回购.生活有多复杂?

助教.

git directory merge subdirectory

36
推荐指数
2
解决办法
1万
查看次数