Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在字符串中的元素周围移动元素_Python_Arrays_String_List - Fatal编程技术网

Python 如何在字符串中的元素周围移动元素

Python 如何在字符串中的元素周围移动元素,python,arrays,string,list,Python,Arrays,String,List,我想要一个函数,它将str_a中的最后一个元素绕字符串移动,直到结束。(在本例中为“adbefc”),然后str_1中的最后一个元素移动一个,然后最后一个元素再次移动到末尾。我想移动stru_a中除第一个元素外的所有元素 def arrange(str_a,str_b):#不需要使用此变量 #待办事项 >>>排列('abc','def')#示例1 ['abcdef','abdcef','abdecf','abdefc','adbcef','adbecf','adbefc','adebcf','a

我想要一个函数,它将str_a中的最后一个元素绕字符串移动,直到结束。(在本例中为“adbefc”),然后str_1中的最后一个元素移动一个,然后最后一个元素再次移动到末尾。我想移动stru_a中除第一个元素外的所有元素

def arrange(str_a,str_b):#不需要使用此变量
#待办事项
>>>排列('abc','def')#示例1
['abcdef','abdcef','abdecf','abdefc','adbcef','adbecf','adbefc','adebcf','adebfc','adefbc','adefbc']
>>>排列('OXY','OOO')#示例1a(更好的洞察力)
['OxOOO'、'OxOOO'、'OxOOY'、'OxOOO'、'OxOOO'、'OxOOY'、'OoxOOO'、'OOXOOY'、'OooXY']
>>>排列('ab','cd')#示例2
['abcd','acbd','acdb']
这是我所做的,它只适用于2个字符的字符串。希望这能让我对自己的目标有所了解

def排列(str_a,str_b,idx=0,lst=[]):
idx+=1
长度=长度(长度a+长度b)
如果idx==长度-1:
返回lst
str_full=str_a+str_b
list_full=列表(str_full)
elem=列表已满[idx]
列表完整[idx]=列表完整[idx+1]
列表完整[idx+1]=元素
lst.append(“”.join(列表已满))
中间索引=int(长度/2)
str_a=''.join(列表完整[:中间索引])
str_b=''.join(列表已满[中间索引:)
退货安排(str_a、str_b、原件、idx、版次、lst)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
结果=排列('ab','cd')
打印(结果)```

itertools.combines是你的朋友

导入itertools
def排列辅助程序(str1、str2):
m、 n=len(str1),len(str2)
对于itertools.组合中的指数(范围(1,m+n),m-1):
字符=[None]*(m+n)
字符[0]=str1[0]
对于索引,zip中的字符(索引,str1[1:]):
字符[索引]=字符
it=国际热核实验堆(str2)
对于索引,枚举中的字符(字符):
如果字符为无:
字符[索引]=下一个(它)
生成“”连接(个字符)
def排列(str1、str2):
返回列表(排列帮助器(str1、str2))
示例:

排列('123','456') ['123456', '124356', '124536', '124563', '142356', '142536', '142563', '145236', '145263', '145623'] >>>排列('OXY','OOO') ['OxOOO'、'OxOOO'、'OxOOY'、'OxOOO'、'OxOOO'、'OxOOY'、'OoxOOO'、'OOXOOY'、'OooXY']
itertools.combines是你的朋友

导入itertools
def排列辅助程序(str1、str2):
m、 n=len(str1),len(str2)
对于itertools.组合中的指数(范围(1,m+n),m-1):
字符=[None]*(m+n)
字符[0]=str1[0]
对于索引,zip中的字符(索引,str1[1:]):
字符[索引]=字符
it=国际热核实验堆(str2)
对于索引,枚举中的字符(字符):
如果字符为无:
字符[索引]=下一个(它)
生成“”连接(个字符)
def排列(str1、str2):
返回列表(排列帮助器(str1、str2))
示例:

排列('123','456') ['123456', '124356', '124536', '124563', '142356', '142536', '142563', '145236', '145263', '145623'] >>>排列('OXY','OOO') ['OxOOO'、'OxOOO'、'OxOOY'、'OxOOO'、'OxOOO'、'OxOOY'、'OoxOOO'、'OOXOOY'、'OooXY']
您能展示一下到目前为止您已经尝试了什么吗?我尝试的是我制作了一个可选的参数output=[],并尝试使用for循环和递归来解决这个问题。它只对arrange('ab','cd')有效。呃,这不是家庭作业??我有一个程序正在工作,我尝试了一种不同的方法。如果有帮助的话。它给了我一个带有大字符串的MemoryError,但效率不高。元素的“顺序”重要吗?你能展示一下你迄今为止的尝试吗?我尝试的是我制作了一个可选的参数output=[],并尝试使用for循环和递归来解决这个问题。它只对arrange('ab','cd')有效。呃,这不是家庭作业??我有一个程序正在工作,我尝试了一种不同的方法。如果有帮助的话。它给了我一个带有大字符串的MemoryError,但效率不高。元素的“顺序”重要吗?