【问题标题】:How can I loop through a concatenation如何循环连接
【发布时间】:2022-01-08 14:34:37
【问题描述】:

我正在尝试用 '.' 来分割单词。然而,在我成功完成每个字母之后,我的下一步是再次拆分当前拆分的单词,但我不想重复变化。

我的预期输出是这样的:

输入词:amaxa 第一个循环将给出 - a.maxa, am.axa, ama.xa, amax.a

那么下一个拆分应该给 - a.m.axa, a.ma.xa,a.max.a,

基本上,我想要“。”这个词的不同变体。然而,当一个完整的循环用尽时被添加,我的主要问题是我有 '.' 出现在彼此旁边,我尝试使用 continue 语句,但它没有用。下面是我的源代码

print("enter email without @gmail.com")

word = input("word: ")


lenofword = len(word) - 1

for i in range(0,lenofword):
    sliceword = word[:1+i] + "." + word[1+i:]
    lis.append(sliceword)

print(sliceword)

for j in range(0,lenofword):
    slices = sliceword[:1+j] + "." + sliceword[j+1:]

    if slices[i:] == slices[:]:
        continue
    print(slices)
    

给出的输出:

enter email without @gmail.com
word: amax
a.max
am.ax
a.m.ax
am..ax
am..ax
ama.x
a.ma.x
am.a.x
ama..x

基本上我想摆脱'am..ax'和'ama..x'

【问题讨论】:

    标签: arrays python-3.x string for-loop concatenation


    【解决方案1】:

    选择应该放置点的两个位置更容易(对于单点情况,可能是相同的位置)。例如:

    for i in range(1, lenofword + 1):
        for j in range(i, lenofword + 1):
            sliced = ".".join(filter(None, [word[:i], word[i:j], word[j:]]))
            print(sliced)
    

    这将为输入单词"amax"打印以下内容:

    a.max
    a.m.ax
    a.ma.x
    am.ax
    am.a.x
    ama.x
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 2021-01-20
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多