每次遇到关键字后查找下一个单词
Find the next word after a keyword each time it's encountered
string = "Is your name Jack ? Wasn't your name Matthew ?"
split_string = string.split()
find_names = split_string[split_string.index("name") +1]
print(find_names)
#Output: Jack
我的目标是每次遇到关键字后都找到下一个单词,而不仅仅是第一次。输出应该是 Jack Matthew 而不是 Jack.
index
采用索引的第二个可选参数开始搜索。因此您可以遍历列表并从先前查找名称的位置调用索引,直到找到所有名称:
ind = -1
while True:
try:
ind = split_string.index('name', ind + 1)
except ValueError:
break
print(split_string[ind + 1])
您可以将单词列表压缩成相邻的单词对。然后对于每一对,测试第一对是否是 "name"
.
string = "Is your name Jack ? Wasn't your name Matthew ?"
split_string = string.split()
[name for test, name in zip(split_string, split_string[1:]) if test == 'name']
# ['Jack', 'Matthew']
string = "Is your name Jack ? Wasn't your name Matthew ?"
split_string = string.split()
find_names = split_string[split_string.index("name") +1]
print(find_names)
#Output: Jack
我的目标是每次遇到关键字后都找到下一个单词,而不仅仅是第一次。输出应该是 Jack Matthew 而不是 Jack.
index
采用索引的第二个可选参数开始搜索。因此您可以遍历列表并从先前查找名称的位置调用索引,直到找到所有名称:
ind = -1
while True:
try:
ind = split_string.index('name', ind + 1)
except ValueError:
break
print(split_string[ind + 1])
您可以将单词列表压缩成相邻的单词对。然后对于每一对,测试第一对是否是 "name"
.
string = "Is your name Jack ? Wasn't your name Matthew ?"
split_string = string.split()
[name for test, name in zip(split_string, split_string[1:]) if test == 'name']
# ['Jack', 'Matthew']