質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1024閲覧

同じリストを比較してもFalseと出力されてしまいます。

konnoeric

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/28 09:01

編集2020/07/28 09:37
とあるウェブ記事が更新されているかどうかを確認できるものをPythonで作っています。 あるサイトからBeautifulSoupを用いて記事のテキストを抽出し、それを新規ファイル(newfile.txt)に書き込みました。ファイルに書いてあるテキスト内容をリストに格納し、前回抽出した記事の内容(benzai.txtに書き込んである)と比較して同じであるか違うものなのかをIf文で判別するものです。 ここに質問の内容を詳しく書いてください。 前回作成したリスト型と比較しているのですが記事の内容が同じものでも == を利用して比較してみるとFakseと出力されてしまいますが、何が問題なのか調べてみても考えてみても分かりません。お力添えをお願いします。 ### 発生している問題・エラーメッセージ なし

エラーメッセージ

### 該当のソースコード mport requests from bs4 import BeautifulSoup import difflib as diff import os newfile_list = 'a' benzai_list = 'a' def readlines_newfile(): fd_newfile = open('newfile.txt','r') data_newfile = fd_newfile.readlines() newfile_list = data_newfile fd_newfile.close() print(data_newfile) def readlines_benzai(): fd_benzai = open('benzai.txt', 'r') data_benzai = fd_benzai.readlines() benzai_list = data_benzai fd_benzai.close() print(data_benzai) r1 = requests.get("https://venzaiten.com/category/%e6%97%a5%e7%b5%8c225%e5%85%88%e7%89%a9/livetrade") soup1 = BeautifulSoup(r1.text, "html.parser") soup2 = soup1.find("li","post_type1 post_num1 clearfix" ) soup3 = soup2.find("h4", "title") soup4 = soup3.find("a") link = soup4.get("href") r2 = requests.get(link) soupFinal = BeautifulSoup(r2.text, "html.parser") soupRealTradeCollum = soupFinal.find("div", "post_content clearfix").text InspectionFile = open("newfile.txt", "w+") InspectionFile.write(soupRealTradeCollum) InspectionFile.close() Entry = open("entry.txt", "w+") readlines_newfile() readlines_benzai() print(benzai_list) print(newfile_list) print(benzai_list == newfile_list) print(len(benzai_list)) print(len(newfile_list)) ```ここに言語名を入力 Pyrhon3

試したこと

最後のコード print(benzai_list == newfile_list) にて、
print(list(benzai_list) == list(newfile_list))
ともやってみましたが結果は同じでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/07/28 09:08

提示コードだと「newfile_list」も「benzai_list 」も「'a'」のままで結果はTrueになります。 実際のコードと提示のコードに相違があるようなので確認ください。
otn

2020/07/28 09:08

> 同じ内容のリストでもFalseと出てしまう 発想が逆です。 Falseとなるということは異なるわけで、「どこが異なるか?」を調べましょう。
konnoeric

2020/07/28 09:13

Can110さん 提示コードを編集しました。確かにあのコードでは両方のリストがaとなってしまいますね。
can110

2020/07/28 09:14

otnさんも指摘されていますが、まずは「print(len(????_list))」行数が同じか確認し 同じなら「print(????_list)」して中身が同じか目視確認してみてください。
konnoeric

2020/07/28 09:15

otnさん 両リストをPrint関数で出力しても全く同じ内容です。違いが見つからないのですが、これ以外の違いはどんなものがあげられるでしょうか?
konnoeric

2020/07/28 09:18

len関数で出力してみました。片方が6で片方が5でした。しかし、目視確認ではどちらも全く同じ内容です。
can110

2020/07/28 09:20

その程度のサイズでしたら質問本文におさまりそうなので print(????_list)した2つの結果をコードブロックで囲んで提示ください。
otn

2020/07/28 09:30

> 両リストをPrint関数で出力しても それは、「文字列化すると等しい」に過ぎません。 要素を1つずつ比較しましょう。
konnoeric

2020/07/28 09:33

otn110 実はリストの長さはとんでもないものです。 ですので、コードを編集なしでそのまま上げました。こちらを実行して見れば同じ出力が得られますのでそちらの方がリストを簡単に閲覧できるかと思います。
can110

2020/07/28 09:40

残念ながら「FileNotFoundError: [Errno 2] No such file or directory: 'benzai.txt'」にて実行できません。 いずれにせよリストの要素数が5と6で異なっている時点で、同じではありません。
otn

2020/07/28 09:46 編集

> 同じ出力が得られます それは、「文字列化すると等しい」に過ぎませんと、書いたのですが、意味分かりませんでしょうか? Falseとなるということは異なるわけで、「どこが異なるか?」を調べましょう。
konnoeric

2020/07/28 09:46

ご指摘で気づいたのですが、実はbenzai.txtに関しては手動で一度ファイルを作成しそこに手で記事の内容をコピペして作成していました。ですのでそうしないと同じ出力が得られません。上記コードで実行してみたところ、 リスト[??????] リスト[??????] a a True 1 1 と出てきました。今度はリストにきちんとファイルの記事のテキストを格納できてないみたいです。
guest

回答1

0

ベストアンサー

newfile_list = 'a'
benzai_list = 'a'
双方このままのはずなので、その結果はおかしいですね。
printしてみてナカミを確認してみては

投稿2020/07/28 09:12

y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

konnoeric

2020/07/28 09:21

おっしゃる通りで、提示コードが間違っておりました。編集しました。よろしければご確認お願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問