[英]Matching Items in Lists - Python
所以我知道如何匹配兩個列表中的項目,但是我很好奇的是如何鏈接兩個匹配項。 例如,我有一個基於瀏覽器的應用程序,並且正在使用Jinja2作為模板語言。
我的程序提取了一個PDF文件列表,其中也有相應的XML文件。 (文件的名稱類似,即foo.xml包含foo.pdf的數據)PDF文件列表顯示在頁面上,並且當用戶從PDF列表中單擊文件名時,該文件的XML數據(如果存在)將顯示在一個小彈出窗口中。
因此,我想我的問題是,由於col_list[0]
並不總是相同,我該如何連接點並指定要顯示的正確xml文件?
以下是我創建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”是一個不斷變化的XML文件列表,其名稱與列表“ A”相同(foo.xml,bar.xml等)
我遍歷兩個列表,並為每個列表創建變量。 如果這些列表相同,我可以簡單地調用list_b[0]
來獲取第一個文件(也就是第一個PDF)的xml數據。 但是,由於某些PDF還沒有XML文件,因此列表的順序不匹配。 假設list_b[0]
是foo.xml
, list_a[3]
是foo.pdf
,當列表順序不斷變化時,如何告訴Python我想要foo.pdf
的XML數據?
對困惑感到抱歉。
如果我理解正確:您想對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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.