列表中的匹配项-Python
所以我知道如何匹配两个列表中的项目,但我好奇的是如何链接这两个匹配。例如,我有一个基于浏览器的应用程序,并使用Jinja2作为我的模板语言列表中的匹配项-Python,python,Python,所以我知道如何匹配两个列表中的项目,但我好奇的是如何链接这两个匹配。例如,我有一个基于浏览器的应用程序,并使用Jinja2作为我的模板语言我的程序提取一个PDF文件列表,其中也包含相应的XML文件。(文件的名称类似,即foo.xml包含foo.pdf的数据)页面上会显示pdf文件列表,当用户单击pdf列表中的文件名时,该文件的xml数据(如果存在)将显示在一个小弹出窗口中因此,我想我的问题是,如何连接点并指定要显示的正确xml文件,因为列列表[0]并不总是同一个文件?下面是我创建pdf文件列表的
我的程序提取一个PDF文件列表,其中也包含相应的XML文件。(文件的名称类似,即foo.xml包含foo.pdf的数据)页面上会显示pdf文件列表,当用户单击pdf列表中的文件名时,该文件的xml数据(如果存在)将显示在一个小弹出窗口中
因此,我想我的问题是,如何连接点并指定要显示的正确xml文件,因为
列列表[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')
)
col_list=''.join(“%s ”%)(os.path.splitext(文件名)[0])
用于列表文件中的文件名
如果filename.endswith(“.pdf”)
)
谢谢
编辑:
我将给出一个不同的例子,希望减少混淆
列表“A”是不断变化的PDF文件列表(foo.PDF、bar.PDF等)
列表“B”是一个不断变化的XML文件列表,其名称与列表“A”(foo.XML、bar.XML等)相同
我正在两个列表上循环,并为每个列表创建变量。如果这些列表相同,我可以简单地调用
list\u b[0]
来获取第一个文件的xml数据,这也是第一个PDF文件。但是,由于一些PDF还没有XML文件,列表的顺序不匹配。比如说list\u b[0]
isfoo.xml
和list\u a[3]
isfoo.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
如果我理解正确:您希望为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
打断你的问题-我中途停止呼吸。。。而且,这似乎取决于web服务器、框架或其他东西。。。我认为我们没有完整的图片。我不太确定你在做什么,但你提到你有一个Jinja2模板。那么为什么要用Python生成这个HTML呢?只需将您的文件名列表传递到模板,并使用
{%forfilenames%}
循环创建无序列表。感谢iGuanaaut,我刚刚学习Jinja2,因此我还不完全熟悉它的功能。我现在生成HTML的方式仅仅是因为它工作正常。我之前发布的代码为列表中的每个对象创建了
标记,允许我在Jquery脚本中很好地组织列表。打断你的问题-我中途停止呼吸。。。而且,这似乎取决于web服务器、框架或其他东西。。。我认为我们没有完整的图片。我不太确定你在做什么,但你提到你有一个Jinja2模板。那么为什么要用Python生成这个HTML呢?只需将您的文件名列表传递到模板,并使用{%forfilenames%}
循环创建无序列表。感谢iGuanaaut,我刚刚学习Jinja2,因此我还不完全熟悉它的功能。我现在生成HTML的方式仅仅是因为它工作正常。我之前发布的代码为列表中的每个对象创建了
标记,允许我在Jquery脚本中很好地组织列表。是的!谢谢,结果很好。我不知道set
类型。@DrydenLong:列表也可以,但是中的操作符在set上要快得多。是的!谢谢,结果很好。我不知道set
类型。@DrydenLong:列表也可以,但是中的操作符在set上要快得多。