找到一个Python列表字符串模式

问题描述 投票:1回答:4

我完全新的Python和会问的任何帮助。

我有,我有做一些清洁的文本文件,也就是我必须从行删除一些字符串模式。下面是我迄今所做的:

f = open("myfile.txt", "r")

mylist = []
for i in f:
    mylist.append(i.strip().split('\t')) #removing newlines '\n'

for i in range(0, len(mylist)): # iterate the list to find the string pattern
    #if "@@" in mylist[i]: # I have tried this as well
    if mylist[i].count('@@') > 0:    
        print(mylist[i])
    else:
        print('NOT')

此代码没有找到我想要的字符串模式。

python string list
4个回答
0
投票
import re    
data = [line 
        for line in f.readlines() 
        if re.findall(r'@@', line)] # iterate the list to 

0
投票

你可以尝试以下功能:find()。它返回其中子被发现的位置。

if ("@@".find(mylist[i]) != -1):
    print(mylist[i])

0
投票

我会作出简单得多:

for line in f.readlines(): 
    if '@@' in line:
        print(line)
    else:
        print('NOT')

0
投票

你可以试试这个直接删除的格局。为什么通过搜索第一再取出,以增加更多的复杂性?

mylist = []
for i in f:
    # you can use readline() function here
    mylist.append(i.strip().split('\t')) #removing newlines '\n'

my_new_list = [mystr.replace("@@",'') for mystr in mylist]

你也可以做到这一点在一个行,如下所示:

with open('your_file_path_here','r') as f:
    print([mystr.replace("@@",'') for mystr in f.readlines()])
© www.soinside.com 2019 - 2024. All rights reserved.