私のプログラムは、いくつかの Web サイトをスクレイピングし、2 つのリスト (1 つはカテゴリ用、もう 1 つはコンテンツ用) を作成します。次に、dict(zip(......))
コマンドを使用してそれらを照合し、dict に入れます。
このようなもの:
complete_dict=dict(zip(category_list,info_list))
プログラムが両方のリスト(カテゴリ、情報)で空の要素を読み取っているという問題に遭遇しました。後で削除できれば問題ありません。問題は、そうする方法を見つけることができなかったことです。読み取ると、両方のリストに空の文字列ではなく空の要素が含まれますが、リスト内の空のリストに似ています。次のようなコマンドを使用して、それらを圧縮した後、リストと辞書の両方でそれらを削除しようとします。
category_list=filter(None, category_list)
また:
info_list=[x for x in info_list if x != []]
もちろん、操作は両方のリストに対して行われます。
勝ったものはありませんでした。私はそれから辞書でそれをやってみました:
dict((k, v) for k, v in complete_list.iteritems() if v)
この時点で他に何を試すことができますか?
編集
フィルタリングを試みましたが、条件が正しく設定されていないか、単に問題が解決されません。私は別の方法を探しているので、別のスレッドの複製ではありません (ただし、そのスレッドにはいくつかの有用な情報があります)。
編集 2
私が今得ているのは:
[u'info1', u'info2', u'info3', u'info4', ...]
[]
[]
[]
[]
[u'info1', u'info2', u'info3', u'info4', ...]
[]
[]
[]
[u'info1', u'info2', u'info3', u'info4', ...]
情報 1、2、3、および 4 (実際にはもっと多くの要素があります) は、Web サイトからスクレイピングされたコンテンツです。申し訳ありませんが、それらが何であるかを実際に明らかにすることはできませんが、アイデアは示されています。これはリスト (info_list) の 1 つです。途中で詰まっている [] をすべて削除しようとしているので、結果は次のようになります。
[u'info1', u'info2', u'info3', u'info4', ...]
[u'info1', u'info2', u'info3', u'info4', ...]
[u'info1', u'info2', u'info3', u'info4', ...]
等々
編集 3
dict(zip(...)) の後、私の結果は次のようになります
{u'category1': u'info1', u'category2': u'info2', ...}
{}
{}
{u'category1': u'info1', u'category2': u'info2', ...}
{u'category1': u'info1', u'category2': u'info2', ...}
{}
{}
{}
等々。