如何从包含特定模式的列中获取索引?
例如,假设我想在此字符串中索引哪些列包含#E
:
,#E,D,,#E,,#,,#E,,,21#E,,#,,#DD,sd,,#,,##,
我想要一个结果:
[1, 4, 8, 11]
到目前为止,我很困惑:
string = ',#E,D,,#E,,#,,#E,,,21#E,,#,,#DD,sd,,#,,##,'
new_string = re.sub('[^,#E]', '', string)
def positions(string, char):
string_original = string
list = []
for i in range(0, len(string)):
if string[i] == char:
list = list + [i]
string = string_original[i + 1:]
return list
答案 0 :(得分:1)
假设yourstring包含列:
matches = [i for i,x in enumerate(yourstring.split(',')) if "#E" in x]
答案 1 :(得分:1)
不确定我有没有,但这是一个想法:
,
以获取字符串列表#E
)>>> s = ',#E,D,,#E,,#,,#E,,,21#E,,#,,#DD,sd,,#,,##,'
>>> l = s.split(',')
>>> [i for i in range(len(l)) if '#E' in l[i]]
[1, 4, 8, 11]
或
>>> filter(lambda i: '#E' in l[i], range(len(l)))
[1, 4, 8, 11]