2022年02月25日

近づいているのか、遠ざかっているのか、不明。python日記-30

2つのlistの同順位の要素同士を掛け算して、
総和を求めるコードの件。いまだにクリア出来ないです。
python外からimportしなくても、
答えは出るようになりました。
#!/usr/bin/env python3

def inner_prod(li1,li2):
conbined2 = [x * y for (x, y) in zip(li1, li2)]
return sum(conbined2)
print(inner_prod((2, 3, 4), (5, 6, 7)))

入れる数値を1からではなく、2に変えています。
2x5+3x6+4x7= の回答を求める関数です。
これも連続している数字でなくても成り立っちゃいます。

inner_prod_other_2022-02-25_13-50-35.jpg

range()とlen()を使って、最終行は、
print(inner_prod((2, 3, 4), (5, 6, 7)))
で、正解が出るようにするのは、
難しいですね。

本コードでの味噌は、zip()でして、
リスト、タプルなどから要素を順番に取り出せる
オブジェクト、と説明があったりします。
それが、リストだ、ということをpythonに
判らせる印のようなもののようです。
あと、forのすぐ後ろも()をつければ、
複数にできることを知りました。

関数というのは、値をどう変えても、
正しい答えが出る雛形です。
コードの上ほうにリストの中身が書けたら、
とてもラクなんですが、それができません。

プログラミングというのは、覚えることは、
比較的少なくて、アタマの使い方、
みたいに思っていました。覚えること、
知らないとできないことの多さに、
少々驚いています。記憶力は、
幼少よりだめなもので。


posted by ブログ開設者 at 14:11| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。