1

2 つのリストのアイテムを一致させる方法はわかっていますが、気になるのは 2 つの一致をリンクする方法です。たとえば、ブラウザー ベースのアプリがあり、Jinja2 をテンプレート言語として使用しています。

私のプログラムは、対応する XML ファイルも含む PDF ファイルのリストを取得します。(ファイルは同様に名前が付けられます。つまり、foo.xml には foo.pdf のデータが含まれます) PDF ファイルのリストがページに表示され、ユーザーが PDF のリストからファイルの名前をクリックすると、そのファイルの XMLデータがまだ存在する場合は、小さなポップアップに表示されます。

だから、私の質問は、ドットを接続して正しいxmlファイルを表示するように指定するにはどうすればよいcol_list[0]のでしょうか?

以下は、pdfファイルのリストを作成する私のコードです:

 col_list = '<li class="ui-widget-content">'.join('%s</li>' % (os.path.splitext(filename)[0])
                     for filename in listfiles
                     if filename.endswith('.pdf')
                     )

ありがとう!

編集:

混乱を避けるために、別の例を挙げます。

リスト 'A' は、絶えず変化する PDF ファイル (foo.pdf、bar.pdf など)のリストです。
リスト 'B' は、リスト 'A' (foo.xml 、bar.xml など)

両方のリストをループして、各リストの変数を作成しています。これらのリストが同一である場合list_b[0]、最初の PDF である最初のファイルの xml データを取得するために呼び出すことができます。ただし、一部の PDF には XML ファイルがまだ含まれていないため、リストの順序が一致しません。list_b[0] isfoo.xmlとis としましょうリストの順序が常に変化している場合にXML データが必要であることを Python に伝えるにlist_a[3]foo.pdfどうすればよいでしょうか? 混乱させて申し訳ありません。foo.pdf

4

1 に答える 1

1

私の理解が正しければ、XML ファイル名のセットを使用して検索する必要があります。

pdfs = ['a.pdf', 'b.pdf', 'c.pdf', 'd.pdf']
xmls = ['a.xml', 'd.xml', 'b.xml']

xml_set = set(xmls)

result = []
for pdf in pdfs:
    xml = pdf.replace('.pdf', '.xml')
    if xml in xml_set:
        result.append('Matched %s to %s' % (pdf, xml))
    else:
        result.append("%s doesn't have a corresponding XML file" % (pdf,))

print result
于 2012-11-26T21:42:28.493 に答える