繁体   English   中英

如何在给定特定条件的情况下从文本字符串中选择行,并将其添加到列表中

[英]How can I select lines from a text string given certain criteria in python and add them to a list

我有一个大的文本文件,已将其读入名为data的字符串中。

我正在使用CGI生成HTML5表单。

我需要从字符串中选择格式如下的行:

@ CountyName标题

这是一个示例:@Algeria:Geography

我需要将标题添加到仅包含标题的列表中,并使其具有唯一性。我已经使用国家/地区列表完成了此操作,但是我不必使用代替行号的条件。 这是代码片段:

import cgi
import cgitb; cgitb.enable()  # for troubleshooting

data = open('factbook.txt')

countries = []
for index, text in enumerate(data):
    if 54 <= index <= 344:
        countries.append(text)
countries = [x[:-1] for x in countries]
countries = filter(None, countries)

headings = []
# Here is where I need help

提前致谢!

我不确定您要使用的方式是正确的国家/地区名称,我举了一个在问题中指定的列表示例:

In [73]: countries =[ "@Algeria:Geography", "@Greece:History", "@India:Culture", "@India:History"]
In [74]: countries = [x[:-1] for x in countries]
In [75]: countries
Out[75]: ['@Algeria:Geograph', '@Greece:Histor', '@India:Cultur', '@India:Histor']

在这里您应该这样做以获取国家

In [76]: countries = [x.split(':')[0][1:] for x in countries]
In [77]: countries
Out[77]: ['Algeria', 'Greece', 'India', 'India']

标题也类似:

In [88]: countries =[ "@Algeria:Geography", "@Greece:History", "@India:Culture", "@India:History"]
In [89]: countries
Out[89]: {' Culture', ' History', 'Geography', 'History'}

对于唯一list使用一set

In [89]: countries =[ "@Algeria:Geography", "@Greece:History", "@India:Culture", "@India:History"]
In [90]: countries = set([x.split(':')[1] for x in countries])
In [91]: countries
Out[91]: {'Culture', 'Geography', 'History'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM