
[code]

    date
    >a
    12345
    12345
    1234
    
    >b
    12345
    1234
    
    >c
    12345
    12
    
    x = []
    A = []
    
    with open("date") as f:
        for line in f:
         new_line = line
         len_count = len(new_line)
    
         if new_line.startswith(">"):
             print(new_line)
             A = ""
             x.append(new.line)
    
         else:
             A += new_line
    
         if new_len == 0:
             print(len(A))
             x.append(len(A))
             A = ""
    
[/code]

このように＞を認識したらprint  
そうでない場合はAに数字を格納していき  
空行を認識した時にAに貯まった数字の文字数をprint  
それとは別にxに[(a,14),(b,9),(c,7)]と追加していきたいです。  
目的としては最終的に最大値をとる文字を見つけるためです

理想の結果としては

[code]

    a
    14
    
    b
    9
    
    c
    7
    
    max a:14
    min c:7
    
[/code]

です。maxとminをxのリストの中からmax/minで探したいと考えています。


CC BY-SA 4.0
2019-01-16T12:14:20.287
52030
2019-01-17T02:24:55.893
31682
question
python
リストの中に文字と数字をセットで入れたい


xを[リスト型](https://docs.python.jp/3/tutorial/introduction.html#lists)にするより、[辞書型](https://docs.python.jp/3/tutorial/datastructures.html#dictionaries)にした方が最終的な目的を達成しやすいと思います。

質問のコードでは`line`に改行文字が入る点や、変数Aの使い方が不明瞭な点が解決されていないように見えます。  
下記のコードなどを参考にしながらコードを切り分けて、まずはどこがうまく動かないのかを洗い出すと良いのではないでしょうか。

[code]

    # dateを作成する
    s = """>a
    12345
    12345
    1234
    
    >b
    12345
    1234
    
    >c
    12345
    12""" 
    
    with open("date", "w") as f:
        f.write(s)
    
    # keyに該当する辞書の値を出力する
    def print_dic(key):
        print(key)
        print(x[key])
        print()
    
    x = {}  #辞書型
    A = []
    
    with open("date") as f:
        for line in f.read().splitlines():
            count = len(line)
            if line.startswith(">"):
                # ">"から始まる場合、キーを設定し変数Aをリセットする
                key = line[1:].strip()
                x[key] = 0
                A = []
            elif line == "":
                # 空行の場合、現在のキーの値を出力
                print_dic(key)
            else:
                # Aは項目を追加するだけ
                x[key] += count
                A.append(line)
    
    print_dic(key)
    
    # 最大値取得
    max = max(x.items(), key = lambda x:x[1])
    print("max {}:{}".format(max[0], max[1]))
    
    # 最小値取得
    min = min(x.items(), key = lambda x:x[1])
    print("min {}:{}".format(min[0], min[1]))
    
[/code]


CC BY-SA 4.0
2019-01-17T01:16:31.197
52042
2019-01-17T01:16:31.197
9820
52030
answer


[以前の回答](https://ja.stackoverflow.com/a/51758)を多少変更してもよさそうです。

[code]

    import re
    
    with open("date") as f:
      assoc = {}
      for p in f.read().split("\n\n"):
        if not re.match('^>', p): continue
        arr = p.split("\n")
        assoc[arr[0][1:]] = sum(map(len, arr[1:]))
    
      print(assoc)
      sa = sorted(assoc.items(), key=lambda x: x[1])
      print('max {}:{}'.format(sa[-1][0], sa[-1][1]))
      print('min {}:{}'.format(sa[0][0], sa[0][1]))
    
    # {'a': 14, 'b': 9, 'c': 7}
    # max a:14
    # min c:7
    
[/code]


CC BY-SA 4.0
2019-01-17T02:24:55.893
52045
2019-01-17T02:24:55.893
52030
answer