检查列表中的所有元素是否唯一的最佳方法(在传统方式中最好)是什么?
我目前采用的方法Counter是:
>>> x = [1, 1, 1, 2, 3, 4, 5, 6, 2]
>>> counter = Counter(x)
>>> for values in counter.itervalues():
if values > 1:
# do something
Run Code Online (Sandbox Code Playgroud)
我可以做得更好吗?
如何在Python中的字符串中找到多次出现的字符串?考虑一下:
>>> text = "Allowed Hello Hollow"
>>> text.find("ll")
1
>>>
Run Code Online (Sandbox Code Playgroud)
所以第一次出现的ll是1,如预期的那样.我如何找到它的下一个出现?
同样的问题对列表有效.考虑:
>>> x = ['ll', 'ok', 'll']
Run Code Online (Sandbox Code Playgroud)
如何查找所有ll索引?
我正在使用一个读取文件的库,并以字节为单位返回其大小.
然后将此文件大小显示给最终用户; 为了让它们更容易理解它,我明确地将文件大小转换为MB除以1024.0 * 1024.0.当然这有效,但我想知道在Python中有更好的方法吗?
更好的是,我的意思是stdlib函数可以根据我想要的类型操作大小.就像我指定的那样MB,它会自动将其除以1024.0 * 1024.0.有些人在这些方面.
我正在写一个小应用程序,我需要多次退出该程序.
我应该使用:
sys.stderr.write('Ok quitting')sys.exit(1)
或者我应该做一个:
print 'Error!'sys.exit(1)
哪个更好?为什么?请注意,我需要做很多事情.该计划应该完全退出.
我有两个A和B类,A是B的基类.
我读到Python中的所有方法都是虚拟的.
那么我如何调用基类的方法,因为当我尝试调用它时,派生类的方法按预期调用?
>>> class A(object):
def print_it(self):
print 'A'
>>> class B(A):
def print_it(self):
print 'B'
>>> x = B()
>>> x.print_it()
B
>>> x.A ???
Run Code Online (Sandbox Code Playgroud) 在Python中,调用命令subprocess但不打扰其输出的最短和标准方法是什么.
我尝试过subprocess.call它似乎返回输出.我并不担心,我只需要静默运行程序而不会使输出混乱.
如果它有帮助,我正在打电话pdflatex,我的意图就是打电话给它.
我有兴趣知道程序部分之间的换行符的Python约定是什么?例如,考虑一下:
import os
def func1():
def func2():
Run Code Online (Sandbox Code Playgroud)
什么应该是理想的换行间隔:
import模块和功能呢?我已经阅读了PEP8,但我想确认以上两点.
我正在开发一个涉及解析HTML的项目.
搜索后,我发现了两个可能的选项:BeautifulSoup和lxml.html
有什么理由比较喜欢一个吗?我已经在一段时间后使用了lxml for XML,我觉得我会更舒服,但是BeautifulSoup似乎很常见.
我知道我应该使用适合我的那个,但我正在寻找两者的个人经历.
有没有办法找到处理器信息...(我需要名字)
我需要运行解释器的处理器的名称.我检查了sys模块,但它没有这样的功能.
如果需要,我也可以使用外部库.
之间有什么区别:
__file__
和
sys.argv[0]
因为两者似乎都在做同样的事情:他们拥有脚本的名称.
如果没有差别,那么为什么__file__几乎所有的地方都使用它,而我从未见过sys.argv[0]被使用过.