是否有内置功能可以从Python中的列表中删除重复项,同时保留顺序?我知道我可以使用一个集来删除重复项,但这会破坏原始顺序.我也知道我可以像这样滚动自己:
def uniq(input):
output = []
for x in input:
if x not in output:
output.append(x)
return output
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话,我想利用内置或更多的Pythonic习语.
如何以编程方式将类名FooBar转换为符号:foo_bar?像这样的东西,但是正确处理骆驼的情况?
FooBar.to_s.downcase.to_sym
Run Code Online (Sandbox Code Playgroud) 我有一个很好的高分辨率宽屏显示器,我希望能够在Eclipse中并排编辑文件(例如,我可以在另一个文件中引用一个文件).我在常用菜单中环顾四周,但还没弄明白如何做到这一点.
有谁知道是否有可能,如果是的话,怎么做?
给定一个字符串列表,我想按字母顺序对其进行排序并删除重复项.我知道我可以这样做:
from sets import Set
[...]
myHash = Set(myList)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何按字母顺序从散列中检索列表成员.
我没有和哈希结婚,所以任何方法都可以实现.此外,性能不是问题,因此我更倾向于使用代码清楚地表达一个快速但更不透明的解决方案.
Ruby Test::Unit有一个很好的assert_matches方法,可以在单元测试中用来断言正则表达式匹配一个字符串.
在JUnit中有这样的东西吗?目前,我这样做:
assertEquals(true, actual.matches(expectedRegex));
Run Code Online (Sandbox Code Playgroud) 如果我在Rails中的RHTML视图中,很容易URL转义:
<a href="/redirect?href=<%=u target %>">Foo</a>
Run Code Online (Sandbox Code Playgroud)
我如何在字符串中执行此操作?我想做这样的事情:
<% redirect_href = "/redirect?#{url_escape target}&foo=bar&baz=some_other_stuff" -%>
<a href="<%= redirect_href =>">Foo</a>
Run Code Online (Sandbox Code Playgroud)
这一定是微不足道的吧?
Perl对默认值非常好:
: jmglov@laurana; perl -e '@foo; printf "%d\n", $foo[123]'
0
: jmglov@laurana; perl -e '%foo; printf "%d\n", $foo{bar}'
0
Run Code Online (Sandbox Code Playgroud)
Ruby可以做同样的事情,至少对于哈希来说:
>> foo = Hash.new(0)
=> {}
>> foo[:bar]
=> 0
Run Code Online (Sandbox Code Playgroud)
但是这些似乎对数组不起作用:
>> foo = Array.new(0)
=> []
>> foo[123]
=> nil
>> foo[124] = 0
=> 0
>> foo[456] = 0
=> 0
>> foo[455,456]
=> [nil, 0]
Run Code Online (Sandbox Code Playgroud)
是否可以为数组提供默认值,因此当它们自动扩展时,它们会被填充为0而不是nil?
当然,我可以解决这个问题,但要付出代价:
>> foo[457,458] = 890, 321
=> [890, 321]
>> foo[456] += 789
NoMethodError: You have a nil object when you …Run Code Online (Sandbox Code Playgroud) 我需要做一些在功能上等同于此的东西:
for foo in foos:
bar = foo.get_bar()
# Do something with bar
Run Code Online (Sandbox Code Playgroud)
我的第一直觉是使用map,但这不起作用:
for bar in map(get_bar, foos):
# Do something with bar
Run Code Online (Sandbox Code Playgroud)
我正在努力实现的目标是什么map?我需要使用列表理解吗?这个Pythonic最常用的成语是什么?
当我在Clojure中定义私有函数时,我通常使用-前缀作为可视指示符,该函数不能在我的命名空间之外使用,例如
(defn- -name []
(let [formatter (formatter "yyyy-MM-dd-HH-mm-ss-SSSS")]
(format "fixjure-%s" (unparse formatter (now)))))
Run Code Online (Sandbox Code Playgroud)
但是这个-前缀在使用时似乎也是公共方法的惯例gen-class.
是否有任何普遍接受defn-的Clojure社区中的d函数约定,或者我应该只使用非前缀名称?
似乎clojure.contrib中的许多代码(可能它安静地使用)使用普通名称作为私有函数,所以也许这是最好的,但我真的很喜欢视觉指示器 - 也许我的C/Perl背景太强了!;)
我需要提交的git中央存储库是使用SSH密钥配置的.我的用户名是jmglov,但是当我执行git操作(例如git clone)时,我使用此配置:
: jmglov@kitiara; cat .git/config
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@git.example.com:AwesomeWare
Run Code Online (Sandbox Code Playgroud)
当我尝试在Eclipse中使用EGit来推送到原点时,我被提示输入用户的密码,只为其启用了SSH密钥对身份验证.我的公钥是用户的授权密钥之一.gitgit
是否可以将EGit配置为使用我的SSH密钥而不是git用户的凭据?