使用itertools [python]在旧索引处的字符串中插入字符

如何解决使用itertools [python]在旧索引处的字符串中插入字符

我在字符串中插入空格。 我交换了字符串。

交换之后,我想放回旧索引处的空格。 我希望通过itertools实现这一目标。有可能吗?

我之所以使用lambda,是因为我希望以此顺序运行该函数n次。 我也希望稍后再将它们用于其他功能

我的代码如下:

import itertools
def func(n,strng):
    
    space_delete = lambda temp_var_strng: temp_var_strng.split(" ")
    join_char = lambda x: "".join(space_delete(x))
    swap_char = lambda s: "".join([join_char(s)[item-n] for item in range(len(join_char(s))) ])
    insert_space = lambda insert: list(itertools.chain.from_iterable(zip(itertools.repeat(" "),insert)))
    print(swap_char(strng))

如果我的输入是func(4,"hello world"),swap_char应该在右边将字符串交换4次。

我的swap_char给了我"orldhellow",因此,如果我将所有空格放回旧索引中,它应该在orld和hellow之间。

我的最后一个功能给了我输出

[' ','o',' ','r','l','d','h','e','w']

但是我的目标是获得:

["orld"," ",hellow]

如果我做这样的嵌套循环,任务就解决了:

for o in lst:
        for i in o:
            result += s[cnt]
            cnt += 1
        result += " "

我可以在列表理解中实现这一点,并使用它来代替,我想因为时间效率而采用itertools解决方案。

提前谢谢。

解决方法

您可以使用numpy解决此问题。

输入:字符串= Hello World; n = 4;

预期输出:orldH elloW

Python代码段:

import numpy as np

# input
n = 4
string = list("Hello World")

string = np.array(string)

# Find the index of space char " "
space_index = np.where(string==' ')[0]

# Remove the space
string = np.delete(string,space_index)

# Rotate the string by n chars
string = np.concatenate((string[-(n):],string[:-(n)]))

# Add the space char to their original positions
string = np.insert(string,space_index,[' '])

print("".join(string))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?