作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试调整窗口在滑动窗口中滑动的距离。我看到SO上有很多关于滑动窗口的帖子,但是,我似乎找不到一篇解释如何调整滑动窗口滑动距离的帖子。我也不一定对分块或只调整窗口大小感兴趣( 1 , 2 )。
举个例子,如果我有一个包含六个字符的字符串
seq = 'ATCGAC'
如果我将窗口大小设置为 1,并且我希望窗口每步滑过 2 个字符。我想要以下输出:
预期输出:
['A', 'C', 'A']
再举个例子,如果我有相同的字符串,想设置窗口大小为3,窗口一次滑过3个字符。我想要以下输出:
预期输出:
['ATC', 'GAC']
作为最后一个示例,带有长字符串的窗口大小。滑动窗口大小为 3 并调整幻灯片以一次滑过 6 个字符:
seq = 'ATCGACATCGACATCGAC'
预期输出:
['ATC', 'ATC', 'ATC']
最佳答案
我相信对此有更优雅的解决方案。每当我发现自己使用 range(len(some_iterable))
时,我都觉得有点脏。
话虽如此,您可以使用一个简单的生成器来实现这一点。
def window(s: str, size: int, slide_amount: int):
str_len = len(s)
for i in range(0, str_len, slide_amount):
# make sure nothing is yielded smaller than
# the desired size
if i + size <= str_len:
yield s[i:i + size]
print([i for i in window('ATCGAC', 1, 2)]) # ['A', 'C', 'A']
print([i for i in window('ATCGAC', 3, 3)]) # ['ATC', 'GAC']
print([i for i in window('ATCGACATCGACATCGAC', 3, 6)]) # ['ATC', 'ATC', 'ATC']
或者作为生成器表达式的函数包装器。
def window(s: str, size: int, slide_amount: int):
return (
s[i:i + size]
for i in range(0, len(s), slide_amount)
if i + size <= len(s)
)
它可以很容易地修改为返回一个 list
。
def window(s: str, size: int, slide_amount: int):
return [
s[i:i + size]
for i in range(0, len(s), slide_amount)
if i + size <= len(s)
]
关于python - 如何调整滑动窗口滑动多远(step),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70202030/
我正在使用 react-native-elements ListItem.Accordion因为我的 React Native 中的所有其他内容 SectionList使用 ListItem s(并且
我是一名优秀的程序员,十分优秀!