小编Chr*_*nds的帖子

numpy.random.shuffle返回无

我安装了numpy1.8.2,然后尝试了以下代码:

import numpy as np
a = np.arange(10)
print a, np.random.shuffle(a)
Run Code Online (Sandbox Code Playgroud)

但它的输出是:

[0 1 2 3 4 5 6 7 8 9] None

我不知道为什么它会返回None,根据它的文档,它应该可以工作!我不知道问题所在。

PyCharm 3.1在Windows 7上使用。

python numpy pycharm

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

确定字符串是否是等值线图

任务:
编写一个程序,检查作为参数提供的单词是否是等值线.Isogram是一个不会出现多次字母的单词.

创建一个名为is_isogram的方法,它接受一个参数,一个单词来测试它是否是等值线图.此方法应返回单词的元组和布尔值,指示它是否是等值线图.

如果提供的参数是空字符串,则返回参数和False :(参数,False).如果提供的参数不是字符串,则引发TypeError,并显示消息'Argument should a a string'.

例:

is_isogram("abolishment")
Run Code Online (Sandbox Code Playgroud)

预期结果:

("abolishment", True)
Run Code Online (Sandbox Code Playgroud)

可见测试

from unittest import TestCase

class IsogramTestCases(TestCase):
  def test_checks_for_isograms(self):
    word = 'abolishment'
    self.assertEqual(
      is_isogram(word),
      (word, True),
      msg="Isogram word, '{}' not detected correctly".format(word)
    )

  def test_returns_false_for_nonisograms(self):
    word = 'alphabet'
    self.assertEqual(
      is_isogram(word),
      (word, False),
      msg="Non isogram word, '{}' falsely detected".format(word)
    )

  def test_it_only_accepts_strings(self):
    with self.assertRaises(TypeError) as context:
      is_isogram(2)
      self.assertEqual(
        'Argument should be a string',
        context.exception.message,
        'String inputs allowed only'
      )
Run Code Online (Sandbox Code Playgroud)

我的解决方案

def is_isogram(word):
    if type(word) != str: …
Run Code Online (Sandbox Code Playgroud)

python

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

在python中过滤一个奇怪的文本文件

我有一个文本文件,其中每个ID行开头,>下一行是一系列字符.字符序列之后的下一行将是另一个以ID开头的ID行>.但在其中一些,而不是我有序列“Sequence unavailable”.ID行之后的序列可以是一行或多行.像这样的例子:

>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
>ENSG00000004139|ENST00000003834
Sequence unavailable
Run Code Online (Sandbox Code Playgroud)

我想过滤掉那些ID “Sequence unavailable”.输出应如下所示:

输出:

>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
Run Code Online (Sandbox Code Playgroud)

你知道如何在python中做到这一点吗?

python bioinformatics fasta

1
推荐指数
1
解决办法
104
查看次数

比较两个类似于startswith的列表

我正在尝试编写一个简单的逻辑,它将在一个列表中查找以其他列表中的单词开头的单词.例如:

a = ["let","test","g"]
b = ["letter", "testing","good","egg","protest"]
Run Code Online (Sandbox Code Playgroud)

应该回来:letter, testing, good.

我已经涉足.startswith()但似乎无法使用整个列表进行搜索.还试过:

if any(i in a for i in b):
Run Code Online (Sandbox Code Playgroud)

但是我无法得到任何结果.

python string list startswith python-2.7

0
推荐指数
1
解决办法
84
查看次数

使用python的文本文件中的图案查找器

我有一个像这个例子的大文本文件:

例:

>chr9:128683-128744
GGATTTCTTCTTAGTTTGGATCCATTGCTGGTGAGCTAGTGGGATTTTTTGGGGGGTGTTA
>chr16:134222-134283
AGCTGGAAGCAGCGTGGGAATCACAGAATGGCCGGGACCTTAAAGGCTTTGCTTGGCCTGG
>chr16:134226-134287
GGAAGCAGCGTGGGAATCACAGAATGGACGGCCGATTAAAGGCTTTGCTTGGCCTGGATTT
>chr1:134723-134784
AAGTGATTCACCCTGCCTTTCCGACCTTCCCCAGAACAGAACACGTTGATCGTGGGCGATA
>chr16:135770-135831
GCCTGAGCAAAGGGCCTGCCCAGACAAGATTTTTTAATTGTTTAAAAACCGAATAAATGTT
Run Code Online (Sandbox Code Playgroud)

此文件分为不同的部分,每个部分有2行.第一行以>(此行称为ID)开头,第二行是字母序列.我想GGAC在字母序列中搜索一个短主题(),如果它们包含主题,我想获得该行的ID(在该行之上一行).

对于上面的例子,这是预期的输出:

预期产量:

>chr16:134222-134283
>chr16:134226-134287
Run Code Online (Sandbox Code Playgroud)

我试图使用以下命令在python中执行此操作,但它不返回我想要的.

infile = open('infile.txt', 'r')
ss = 'CCGA'
new = []
for line in range(len(infile)):
    if not infile[line].startswith('>'):
        for match in pattern.finder(ss):
            new.append(infile[line-1])
Run Code Online (Sandbox Code Playgroud)

你知道怎么解决吗?

python bioinformatics fasta biopython

0
推荐指数
1
解决办法
114
查看次数

在biopython中仅显示DNA比对分数

我有 DNA 序列数据。例如,

X="ACGGGT"
Y="ACGGT"
Run Code Online (Sandbox Code Playgroud)

我想知道对齐分数,因此我使用了biopythonpairwise2函数。例如,

from Bio import pairwise2
from Bio.pairwise2 import format_alignment

alignments = pairwise2.align.globalxx(X, Y)
for a in alignments:
    print(format_alignment(*a))
Run Code Online (Sandbox Code Playgroud)

这成功地显示了 DNA 比对,但我只需要如下的分数。有没有办法只显示分数?

在此输入图像描述

我使用了biopython,但如果有更好的方法,我们将不胜感激。

python bioinformatics dna-sequence biopython pairwise

0
推荐指数
1
解决办法
2308
查看次数

用增量编号替换列表中的 0 个值,从该列表中的最高数字开始

如果我有一个清单

l = [0,1,2,3,4,5,0,23,34,0,45,0,21,58,98,76,68,0] 
Run Code Online (Sandbox Code Playgroud)

我想用从列表 l 中的最大值开始的增量值替换所有 0。所以在这种情况下,最高值是 98,所以 0 应该替换为 99,100,101,102 和 103。

这是我的解决方案,它工作正常

for ix,i in enumerate(l):
    m = max(l)
    if i == 0:
        l[ix] = (m+1)

Run Code Online (Sandbox Code Playgroud)

但我想知道解决这个问题的最佳方法是什么。

python python-3.x

0
推荐指数
1
解决办法
39
查看次数

了解Python IndentationError和SyntaxError

我想理解为什么Python 3.5.1有时会抛出一个IndentationError,有时候抛出一个SyntaxError,当我希望它IndentationError在两种情况下抛出它时.例如:

1)

>>> if True:
...     pass
...             else:
  File "<stdin>", line 3
    else:
    ^
IndentationError: unexpected indent
Run Code Online (Sandbox Code Playgroud)

2)

>>> if True:
...     pass
...     else:
  File "<stdin>", line 3
    else:
       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python python-3.x

-1
推荐指数
1
解决办法
72
查看次数