Python問題50回


Log In


これはdictについての質問ですが、clean codeのようにコードを大幅に減らす方法があるので、位置決めしたいと思います.

Assignment


指定されたリストの各要素(要素)を、リストに表示されるインデックスとしてdictionaryとして作成し、返してください.Dictionaryのキーはlistの要素値で、valueはその要素の総周波数です.
たとえば、次のリストを入力として使用します.
> my_list = ["one", 2, 3, 2, "one"]
Returnの値は次のとおりです.
{
   "one" : 2,
    2 : 2,
    3: 1
}
リストが1次元ならDictionaryは2次元という感じ
CS 1に触れ始めた頃はDictも習ってたみたいでDrop

1.近接


どうやって彼に近づくか考えています.
二つに分けることにした.
  • 要素の冗長性の有無
  • 周波数.
  • そのためには、要素のforループを読み込む必要があります.
    最初に読み込んだ要素が重複している場合はcount+1で返すべきです.

    2.解答


    そのコードは以下の通りです.
    def get_occurrence_count(input_list):
    
    # 함수를 완성해 주세요.
        new_dict ={}
        occ_count=1
        for i in range(len(input_list)):
            for j in range(len(input_list)):
                if i!=j:
                    if input_list[i]==input_list[j]:
                        occ_count +=1
            new_dict[input_list[i]]=occ_count
    
        return new_dict코드를 입력하세요
    でもocc countはちょっとおかしい
    결과값
    {'one': 5, 2: 4, 3: 3}
    Shit..
    何か問題があるのかと思ったら...occ countはfor loopの外にあるので、1に戻るのではなく、直接保存します.ここに20分も書いてあるようですまだ慣れていないようです.
    def get_occurrence_count(input_list):
    
    # 함수를 완성해 주세요.
      new_dict ={}
    
      for i in range(len(input_list)):
          occ_count=1
          for j in range(len(input_list)):
              if i!=j:
                  if input_list[i]==input_list[j]:
                      occ_count +=1
          new_dict[input_list[i]]=occ_count
    
      return new_dict
    
    my_list = ["one", 2, 3, 2, "one"]
    
    print(get_occurrence_count(my_list))
    うん.よく撮れた
    しかし、直接Dictに入れる方法はありますか?悩んでいる
    Dictについての解答を調べてみました.

    3.その他の解釈

    def get_occurrence_count(my_list):
      my_dict = {}
      for value in my_list:
        if value in my_dict:
          my_dict[value] += 1
        else:
          my_dict[value] = 1
    
      return my_dict
    ああ...
    1.空の辞書の作成
    2.valueを作成し、myリストの値をfor文に変換します.
    3.値が存在する場合は、my dictのキー値に挿入し、my dictの値をelse文に優先的に格納します(1はこの値です).
    4.次にもう一度回すと、同じものに遭遇した場合、my dict[value]は同じなので、+=1のカウントが増えるにつれてvalue値も変化します.
    5. Return my_dict.

    Log Out


    コードが簡潔であればあるほど、速度が速くなります.まず問題解決に集中してからコードコメントをするとき、どのようにしてより簡潔にすることができますか?苦悩の習慣を続けなければならない.