我想要一个变量,它是一个嵌套的列表,列出了一些我可以在以后填写的空列表.看起来像:
my_variable=[[], [], [], []]
Run Code Online (Sandbox Code Playgroud)
但是,我事先并不知道我需要多少列表,只是在创建步骤,因此我需要一个变量a来确定它.我想简单my_variable=[[]]*a,但是创建了列表的副本,这不是我想要的.
我可以:
my_variable=[]
for x in range(a):
my_variable.append([])
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种更优雅的解决方案(最好是单线).有没有?
我有一个包含不同扩展名的文件列表.淘汰者我想筛选出只有那些扩展.bam,.bai,.vcf和更多一些.有没有办法使用带有多个参数的endswith函数而不是多次重复它?
所以代替:
for name in list:
if name.endswith('.bam') or name.endswith('.bai') or name.endswith('.bai'):
# do stuff
Run Code Online (Sandbox Code Playgroud)
就像是:
for name in list:
if name.endswith(*['.bai', '.bam', '.vcf']):
# do stuff
Run Code Online (Sandbox Code Playgroud) 我有一个很大的列表,其中有 1000 万个整数(已排序)“列表”。我需要的是获得一些整数(来自“blist”)和列表中的邻居之间的最小距离。我通过找到我要查找的整数的位置,获取前后的项目并测量差异来做到这一点:
alist=[1, 4, 30, 1000, 2000] #~10 million integers
blist=[4, 30, 1000] #~8 million integers
for b in blist:
position=alist.index(b)
distance=min([b-alist[position-1],alist[position+1]-b])
Run Code Online (Sandbox Code Playgroud)
这个操作必须重复数百万次,不幸的是,它在我的机器上需要很长时间。有没有办法提高这段代码的性能?我使用 python 2.6 而 python 3 不是一个选项。