python查找lis中第一个副本的索引

2024-09-30 22:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想遍历一个列表,这样我就可以找到索引号,列表中的第一个项在其中找到第一个匹配项。我的结果应该打印mylist[0:first_match]

我的意思是:

.APT 5B              APT 5B  .
.BUSINESS   JOEY     BUSINESS.
.                    1ST FL  .
.        NATE JR    SAM      .
.        JOE       7         .
.                            .
.2ND FLR TOM         2ND FLR .
.A1 2FL           APT 71E    .
.APT E205            APT 1R  .
.        CONSTRUCTION        .
.APT 640              APT 545.
.PART1   SYNC  PART2         .
.  NATE JR        SAM        .

我遇到的问题是,即使在找到第一个匹配项之后,程序仍会继续向字典中添加项,因此会附加我想忽略/绕过的数据。。在

以下是我所拥有的:

^{pr2}$

结果:

['APT', '5B', 'APT', '5B']
APT 5B
['BUSINESS', 'JOEY', 'BUSINESS']
BUSINESS JOEY
['1ST', 'FL']
1ST FL
['NATE', 'JR', 'SAM']
NATE JR SAM
['JOE', '7']
JOE 7
[]

['2ND', 'FLR', 'TOM', '2ND', 'FLR']
2ND FLR TOM
['A1', '2FL', 'APT', '71E']
A1 2FL APT 71E
['APT', 'E205', 'APT', '1R']
APT E205 1R          # Would like to stop adding items after first 'APT' match
['CONSTRUCTION']
CONSTRUCTION
['APT', '640', 'APT', '545']
APT 640 545          # same here...
['PART1', 'SYNC', 'PART2']
PART1 SYNC PART2
['NATE', 'JR', 'SAM']
NATE JR SAM
[Finished in 0.1s]

我希望我已经正确地解释了这一点,有人可以对它进行微调

谢谢你

编辑1 下面是我想打印的示例:

listt:
    ['APT', '640', 'APT', '1', '2', '3']

找到“APT”匹配,因此:

print:
    APT 640

{cd2>忽略^


Tags: sama1aptsyncbusinessjoepart1tom
3条回答

如果你关心的是从你的列表中删除重复的条目,那么“设置”就是为了拯救你。在

uniqlist = list(set(dupelist))

我还应该提到另一篇文章提到了从列表中删除重复项的能力。在

Python unique list using set

给你:

>>> f = open('your_file.txt')
>>> for x in f:
        line = re.findall('\w+',x.strip())
        print line
        try:
            print " " .join(line[:line[1:].index(line[0])+1])
        except: print " ".join(line)

输出:

^{pr2}$

我不确定我是否完全理解你需要什么,但这可能有用。在

def read_text(name_file, string):

    index_found = [0, 0]
    result = [0, 0]

    with open (name_file) as f:
        read_temp = [word for line in f for word in line.split()]       

    for s in read_temp:                                                 
        if string in str(s):
            index_str = read_temp.index(s)                              
            index_found[0] = index_str
            index_found[1] = index_str + 1                              

    result[0] = read_temp[index_found[0]]
    result[1] = read_temp[index_found[1]]

    return result

os.chdir('Path to your .txt')

result_list = read_text("your_file.txt", "APT") # "APT" or whatever string you need to find.

print result_list

输出:

^{pr2}$

相关问题 更多 >