numbers=[] count=0 for c in list: if c==c: count=count+1 numbers.append(count)
なぜこれでうまくいかないのでしょうか?
よろしくお願いします。
コード def count(things): counts = {} for x in things: if x not in counts: counts[x] = 0 counts[x] = counts[x] + 1 return counts
答えです
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
半日考えましたが分かりません。
まず、半日、Python の入門書を読みましょう。
「引数が 1つで、辞書を返す関数 count を作れ」とあったら、
つぎのようなコードを書くはずです。
Python
1def count(a): # 引数1つの関数 count を定義する 2 d = {} # 空の辞書を用意する 3 # リスト a の中身を調べて辞書 d に追加する 4 return d # 辞書を返す
質問のコードには、関数定義も辞書も return もありません。
count=0
だと count は関数ではなく変数です。
Python の基礎を勉強してください。
追記
私が回答を書いた後に質問に追記がありましたね。
穴埋め問題なのに、どうして最初に無茶苦茶なコードを書いたのですか?
Python の基礎
a = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
a はリストです。
a[0] は 31 です。a[1] は 28 です。a[11] は 31 です。
リスト a に 75 を追加するのは、a.append(75) です。
d = {31: 7, 28: 1, 30: 4}
d は辞書です。
d[31] は 7 です。d[30] は 4 です。
辞書 d に 75:1 を追加するのは、d[75] = 1 です。
d[28] = 5 だと既に存在する 28:1 が 28:5 に変更されます。
投稿2021/07/18 14:42
編集2021/07/18 15:13総合スコア8224
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/18 15:20
2021/07/18 15:24
2021/07/18 15:26
0
自己解決
def count(things):
counts = {}
for x in things:
if x not in counts:
counts[x] = 0
counts[x] = counts[x] + 1
return counts
投稿2021/07/18 15:32
総合スコア0
0
回答ではありませんが、
この問題は引数で与えられるリストにかなり複雑な条件を付けないと正解がありません。
仮にcount_listという関数でそれが実現できたと思ったとしましょう。
その時には以下を試してみてください。
python
1>>> print(count_list([1, True, 1.0])) 2{1: 3}
のような結果が返ってくることでしょう。
また、以下も試してみてください。
python
1>>> print(count_list([[1,2], [3,4], [5,6]])) 2Traceback (most recent call last): 3 File "<stdin>", line 1, in <module> 4 File "<stdin>", line 4, in count_list 5TypeError: unhashable type: 'list'
のような結果が返ってくるでしょう。
投稿2021/07/18 14:26
総合スコア24670
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
- 以下の 「c == c」はどのような状態を検出しようとしていますか? C と C は常に同じです。
python
1for c in list: 2 if c==c:
- numbersはリストですが、出現回数は辞書として返すのでは?
以下のような感じで作ればいいでしょう。
- 返す辞書は以下のようなものとする。
入力が「apple」であれば、 {"a":1, "e":1, "l":1, "p":2} になる。
- 入力を1文字ずつ取り出し
辞書になければ追加して、値を1とする。
辞書にあれば、値に1を足す - 入力が無くなれば、辞書を返す
投稿2021/07/18 13:54
総合スコア13790
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/18 14:05
2021/07/18 14:27 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。