2024-06-28 14:53:26 发布
网友
让
s = 'hello you blablablbalba qyosud' i = 17
如何在位置i周围找到单词?即我的例子中的blablablbalba。你知道吗
i
blablablbalba
我在想这个,但似乎不太和谐:
for j, c in enumerate(s): if c == ' ': if j < i: start = j else: end = j break print start, end print s[start+1:end]
这里是另一个简单的正则表达式方法
import re s = 'hello you blablablbalba qyosud' i = 17 string_at_i = re.findall(r"(\w+)", s[i:])[0] print(re.findall(r"\w*%s\w*" % string_at_i, s))
更新:以前的模式在有空间时失败。现在的模式解决了!你知道吗
您可以按空格分割单词,然后计算空格数,直到threshold参数(i),这将是分割列表中项目的索引。你知道吗
解决方案:
print (s.split()[s[:i].count(" ")])
编辑:
如果单词之间有一个以上的空格,我们想把两个(或更多)空格看作一个空格,我们可以这样做:
print (s.split()[" ".join(s[:i].split()).count(" ")])
输出:
说明:
这个返回值是2,因为在17索引之前有两个空格。你知道吗
s[:i].count(" ") # return's 2
这是一个按空格分隔的列表。你知道吗
s.split()
您需要的是相关项的索引,它来自s[:i].count(" ")
s[:i].count(" ")
['hello', 'you', 'blablablbalba', 'qyosud']
回答你的第一个问题
p = s[0 : i].rfind(' ')
Output: 9
关于你的第二个问题
s[ p + 1 : (s[p + 1 : ].find(' ') + p + 1) ]
Output: 'blablablbalba'
从起始位置到第i个位置提取字符串。
查找上次出现的空格的索引。这将是你必读单词(第二个问题)的起点。
以下合并代码应适用于所有场景:
s = s + ' ' p = s[0 : i].rfind(' ') s[ p + 1 : (s[p + 1 : ].find(' ') + p + 1) ]
这里是另一个简单的正则表达式方法
更新:以前的模式在有空间时失败。现在的模式解决了!你知道吗
您可以按空格分割单词,然后计算空格数,直到threshold参数(
i
),这将是分割列表中项目的索引。你知道吗解决方案:
编辑:
如果单词之间有一个以上的空格,我们想把两个(或更多)空格看作一个空格,我们可以这样做:
输出:
说明:
这个返回值是2,因为在17索引之前有两个空格。你知道吗
这是一个按空格分隔的列表。你知道吗
您需要的是相关项的索引,它来自
s[:i].count(" ")
回答你的第一个问题
关于你的第二个问题
说明:
从起始位置到第i个位置提取字符串。
查找上次出现的空格的索引。这将是你必读单词(第二个问题)的起点。
以下合并代码应适用于所有场景:
相关问题 更多 >
编程相关推荐