【问题标题】:Iterate through a string using split使用 split 遍历字符串
【发布时间】:2017-11-28 19:14:42
【问题描述】:

我基本上有两个包含字符串的列表:

com = ['746365', '6365']
dec = ['6d955s2359d757bb40d0cf36bd7a35662d8b3']

我取列表 a '746365' 中第一个元素的长度,并将列表 b 切割成与第一个元素相同的长度,(len('746365') = 6),b 的结果是 '6d955s'。我现在希望将 b 中的元素移动一个位置,直到我到达终点('62d8b3')。

我目前有:

count = 0
for a in com:
    for b in dec:
        print(com.index(a), a)
        length_of = len(a)
        print(b[0 + count:length_of + count])
        count = count + 1

这不起作用。但是,如果我删除计数部分并保留其下方显示的内容,但我无法让它移动一个

for a in com:
    for b in dec:
        print(com.index(a), a)
        length_of = len(a)
        print(b[0:length_of])

如何调整此代码以便打印,然后移动一个并打印下一个?

初始结果应该是:

6d955s d955s2 955s23 etc etc..

一旦到达 dec 的末尾,它将移动到 com 中的下一个值。

谢谢。

【问题讨论】:

  • 发生了什么?
  • @Taegost 我只是想不出另一种方法来实现它,它不适用于计数
  • 我认为你想要做的是“滑动窗口”。您可以在网络上查找该术语以找到有趣的东西。希望这会有所帮助

标签: string python-3.x loops


【解决方案1】:

试试这个:

for a in com:
    for b in dec:
        for i in range(0,len(b)-len(a)+1):
            clipped_str = b[i:i+len(a)]
            print(clipped_str)

【讨论】:

    【解决方案2】:

    试试这个代码:

    start = 0
    for c_element in com:
        current_length = len(c_element)
        end = start + current_length
        for d_element in dec:
            for _ in range(len(d_element) - current_length + 1):
                print(d_element[start:end])
                start += 1
                end += 1
        else:
            start = 0
    

    【讨论】:

      猜你喜欢
      • 2014-04-14
      • 2018-09-12
      • 2018-05-15
      • 1970-01-01
      • 2010-11-17
      • 2011-08-27
      相关资源
      最近更新 更多