如何选择
[Andrey]
中的[21]
和info
?
info = "my name is [Andrey] and I am [21] years old"
result = ["[Andrey]", "[21]"];
答案 0 :(得分:1)
您可以选择正则表达式方法。
或者在这里为您的用例使用列表理解:
>>> print([ lst[index] for index in [3,7] ])
['[Andrey]', '[21]']
但是,另一种方法是,您首先将字符串转换为列表,然后借助itemgetter
通过索引方法进行选择:
>>> info = "my name is [Andrey] and I am [21] years old"
>>> lst = info.split()
>>> lst
['my', 'name', 'is', '[Andrey]', 'and', 'I', 'am', '[21]', 'years', 'old']
>>> from operator import itemgetter
>>> print(itemgetter(3,7)(lst))
('[Andrey]', '[21]')
答案 1 :(得分:1)
我相信其他方法会更好。但是我尝试了一下,就奏效了。
如果要在[]内提取字符而不知道其位置,可以使用以下方法:
通过字符串运行for循环
如果找到字符[
将所有下一个字符追加到字符串中,直到找到]
您可以将这些字符串添加到列表中以一起获取结果。这是代码。
info = "my name is [Andrey] and I am [21] years old"
s=[] #list to collect searched result
s1="" #elements of s
for i in range(len(info)):
if info[i]=="[":
while info[i+1] != "]":
s1 += info[i+1]
i=i+1
s.append(s1)
s1=""
#make s1 empty to search for another string inside []
print s
输出将是:
['Andrey', '21']