小编Mat*_*ski的帖子

Python中的二进制搜索(二分)

是否有一个库函数在列表/元组上执行二进制搜索并返回项目的位置(如果找到)和'False'(-1,None等),如果没有?

我在bisect模块中找到了函数bisect_left/right ,但即使该项不在列表中,它们仍会返回一个位置.这对于他们的预期用途来说非常好,但我只是想知道一个项目是否在列表中(不想插入任何内容).

我想过使用bisect_left然后检查那个位置的项目是否等于我正在搜索的项目,但这看起来很麻烦(我还需要检查边界是否可以大于我列表中的最大数字).如果有一个更好的方法我想知道它.

编辑为了澄清我需要这个:我知道字典非常适​​合这个,但我试图尽可能降低内存消耗.我的预期用法是一种双向查找表.我在表中有一个值列表,我需要能够根据它们的索引访问这些值.而且如果值不在列表中,我希望能够找到特定值的索引或None.

使用字典是最快的方法,但会(大约)加倍内存需求.

我在问这个问题,认为我可能忽略了Python库中的某些东西.正如Moe建议的那样,我似乎必须编写自己的代码.

python binary-search bisection

170
推荐指数
8
解决办法
17万
查看次数

如何在Python中将方法作为参数传递

是否可以将方法作为参数传递给方法?

self.method2(self.method1)

def method1(self):
    return 'hello world'

def method2(self, methodToRun):
    result = methodToRun.call()
    return result
Run Code Online (Sandbox Code Playgroud)

python parameter-passing

165
推荐指数
6
解决办法
18万
查看次数

UNIX导出命令

我试图了解export命令的使用.

我尝试过使用man export,但这个命令没有手册.

任何人都可以帮我理解export在UNIX中的使用吗?

unix bash shell

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

使用git,如何忽略一个分支中的文件但是在另一个分支中提交它?

我有一个项目,我正在部署到Heroku.源代码树包含一堆mp3文件(该网站将用于我参与的录制项目).

我想把它的源代码放在GitHub上,但是GitHub对他们的免费帐户有300 MB的限制.我不想在一堆mp3文件上使用50 MB的限制.显然,我可以将它们添加到.gitignore文件中,以防止它们被我的回购.

但是,我使用了部署到Heroku git push heroku.mp3文件必须存在于我推送到Heroku的分支中,以便它们得到部署.

理想情况下,我想.gitignore在我的本地主分支中的mp3文件,以便当我将其推送到GitHub时,不包括mp3.然后我会保留一个本地生产分支,其中提交了mp3而不是忽略.要部署,我会将master合并到生产中,然后将生产分支推送到Heroku.

我不能让这个工作正常.

这是我正在尝试做的一个例子......

$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
Run Code Online (Sandbox Code Playgroud)

此时,Foo.ignored在我的主分支中被忽略,但它仍然存在,所以我的项目可以使用它.

$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Run Code Online (Sandbox Code Playgroud)

现在我有了一个分支,这些文件已经提交,正如我想的那样.但是,当我切换回我的主分支时,Foo.ignored就消失了.

有人有任何建议可以更好地设置它吗?

编辑:只是为了澄清,我希望mp3文件存在于两个分支中,以便当我在本地运行该站点(使用任一分支)时,该站点可以工作.我只想在一个分支中忽略文件,所以当我推送到GitHub时,它们也不会被推送.通常.gitignore适用于这种事情(即保留一个文件的本地副本,但不会包含在推送到遥控器中),但当我切换到签入文件的分支,然后返回到忽略文件的分支,文件消失.

git gitignore

152
推荐指数
5
解决办法
6万
查看次数

如何跳转到vim中的特定角色?

如何在vim中跳转到下一个字符X?

我经常使用,例如,dt:或者ct:删除/改变了一切,直到一个冒号(或其它字符).

是否有任何短键组合只需将光标位置移动到该字符?

vim macvim

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

在OS X Lion中,LANG未设置为UTF-8,如何解决?

我尝试在OS X Lion中设置postgress,并发现没有正确设置LOCALE环境var.

这是设定的:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

我期待UTF-8的东西.这是一个干净的OS X Lion设置,具有西班牙语.我什么都不动.

我不知道如何设置UTF-8.

在终端设置中,检查UTF-8并将LOCALE设置为打开,尽管不起作用.

macos terminal encoding utf-8

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

如何在Python中将列表扩展为函数参数

是否有语法允许您将列表扩展为函数调用的参数?

例:

# Trivial example function, not meant to do anything useful.
def foo(x,y,z):
   return "%d, %d, %d" %(x,y,z)

# List of values that I want to pass into foo.
values = [1,2,3]

# I want to do something like this, and get the result "1, 2, 3":
foo( values.howDoYouExpandMe() )
Run Code Online (Sandbox Code Playgroud)

python arguments

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

如何从GitHub中的问题引用现有分支?

假设我有一个名为的分支feature/1.并且还发行#1.我想将该分支链接到该问题.

有没有一种方法来分支链接到这个问题问题?没有提交.

github git-branch

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

如何在GitHub上的其他人的分支上获取分支?

我从GitHub上的回购中分得一杯羹.我想从另一个用户的fork上的分支获取代码.

我必须将此用户的整个仓库克隆到单独的本地仓库,还是可以执行类似的操作git checkout link_to_the_other_users_branch

git github git-fetch git-branch git-fork

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

如何使用ffmpeg将新音频(不混音)添加到视频中?

我使用了如下命令:

ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
Run Code Online (Sandbox Code Playgroud)

在最新版本中添加新的音频轨道到视频(不混合).

但我将ffmpeg更新为最新版本(ffmpeg版本git-2012-06-16-809d71d),现在在此版本中该参数-newaudio不起作用.

请告诉我如何使用我的视频(而不是混音)添加新音频ffmpeg.

audio video ffmpeg

123
推荐指数
5
解决办法
13万
查看次数