如何从句子中选择括号中的单词?

时间:2018-12-02 09:26:47

标签: python string list

如何选择 [Andrey]中的[21]info

info = "my name is [Andrey] and I am [21] years old"
result = ["[Andrey]", "[21]"];

2 个答案:

答案 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']