1

私が持っているもの:

series = ['foo', 'bar', 'baz', 'foo', 'baz', 'foo' ]
column = [1, 2, -3, -4, 5, -6]


list = [column[function(x)].count() for x in series]

list:
foo = 3
bar = 1
baz = 2

正常に動作し、一連の各インスタンスがカウントされます。

正の数のインスタンスのみもカウントしたいので、次のようにします。

list = [column[function(x)].count() for x in series if (x := function(x)) >= 0]

list:

foo = 1
bar = 1
baz = 1

Walrus Operator を発見しましたが、私の場合、x は文字列です。おそらく核心的な問題でしょうか?

コードの Walrus 部分で構文エラーが発生します。

関数で「合計」と「正の合計」列を作成すると、合計と正の数の両方が必要です。リスト内包表記でこれを行う方法はありますか。

よろしくお願いいたします。

4

2 に答える 2