質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

読み込んだデータから大きい数値が見つかる度にリストに収納したい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 244

22Go

score 37

1、データを1行ずつ読み込む
2、”>”で始まる時は、その行を出力
3、”>”で始まらない場合は、その行の文字数をカウントする
4、カウントした文字数が最大値を上回る度に、その時の行と数値をリストに収納
5、カウントした文字数が最小値を下回る度に、その時の行と数値をリストに収納
6、最終的にリストに入っている最大値と最小値を出力する

>YP_009518834.1 putative uncharacterized protein YjiT [Escherichia coli str. K-12 substr. MG1655]
MGQSEYISWVKCTSWLSNFVNLRGLRQPDGRPLYEYHATNDEYTQLTQLLRAVGQSQSNICNRDFAACFV
LFCSEWYRRDYERQCGWTWDPIYKKIGISFTATELGTIVPKGMEDYWLRPIRFYESERRNFLGTLFSEGG
LPFRLLKESDSRFLAVFSRILGQYEQAKQSGFSALSLARAVIEKSALPTVFSEDTSVELISHMADNLNSL
VLTHNLINHKEPVQQLEKVHPTWRSEFPIPLDDETGTHFLNGLLCAASVEAKPRLQKNKSTRCQFYWSEK
HPDELRVIVSLPDEVSFPVTSEPSTTRFELAICEDGEEVSGLGPAYASLENRQATVRLRKSEVRFGRQNP
SAGLSLVARAGGMIVGSIKLDDSEIAIGEVPLTFIVDADQWLLQGQASCSVRSSDVLIVLPRDNSNVAGF
DGQSRAVNVLGLKALPVKGCQDVTVTANETYRIRTGREQISIGRFALNGKRASWVCHPDETFIGVPKVIS
TLPDIQSIDVTRYTC


>YP_009518833.1 uncharacterized protein YtiA [Escherichia coli str. K-12 substr. MG1655]
MKEFLFLFHSTVGVIQTRKALQAAGMTFRVSDIPRDLRGGCGLCIWLTCPPGEEIQWVIPGLTESIYCQQ
DGVWRCIAHYGVSPR

>YP_009518832.1 iraD leader peptide [Escherichia coli str. K-12 substr. MG1655]
MENEHQYSGARCSGQAAYVAKRQECAK

>YP_009518831.1 protein YtiD [Escherichia coli str. K-12 substr. MG1655]
MADYAEINNFPPELSSSGDKYFHLRNYSEYSEYTSGFFLSLMIFIKS

>YP_009518830.1 protein YtiC [Escherichia coli str. K-12 substr. MG1655]
MPVNGIFDVFDMLSIYIIYKLIVSNNTWLIMRK
A = ""
max_len = [0]
min_len = [10000000000000000000000]
max_number = [0]
min_number = [0]

with open("short.sequ.txt") as f:
    for line in f:
        strip_line = line.rstrip()
        len_number = len(strip_line)

        if strip_line.startswith(">"):
            print(strip_line+"\n")
            A = ""

        else:
            A += strip_line

        if len_number == 0:
            print(len(A))
            A = ""

        if [len(A)] > max_len:
            max_number.append(len(A))

        if [len(A)] < min_len:
            min_number.append(len(A))



print(max(max_number))
new_number = [i for i in min_number if i > 0]
print(min(new_number))


最大値と最小値が見つかった時に、前行と対応させてリストに格納するにはどうしたらいいでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

要件をみる限り、一々最大値か最小値かを調べる必要が無いように感じます。

文字列の長さを調べ、リストに追加

データが終わるまで続ける

最後にリストに対してmax()min()を使う

これで最大値と最小値は取れると思います。

追記

n_lengthes = []
n_length = len(sentence)
n_lengthes.append(n_length)

n_max_length = max(n_lengthes)
n_min_length = min(n_lengthes)

テキストと一緒に表示させたい場合はテキストもリストに追加しておき、最大最小値を出した後に
最大値と最小値を使ってn_lengthes.index(max or min)インデックスを出し、
テキストを取得すれば良さそうです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/14 14:27

    考えてみるとそうですね!
    文字列の長さをlenで測って、そのあとにリストに加えていくには
    どんな作業が必要ですか?

    キャンセル

  • 2019/01/14 14:33

    考えてみたのですが、最大値とその時の名前を対応させるにはどうしたらいいでしょうか?

    キャンセル

  • 2019/01/14 16:03

    うまく書けなかったのですが、どのような流れで書いたらいいでしょうか?

    キャンセル

  • 2019/01/14 16:04

    globalを使わない方法が自分には考えにくくてどうしても頼る考えになってしまいます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる