Python 对迭代中具有重复元素的字符串进行分区
我想迭代一个字符串并打印每个分区字符串的元组,如下所示:Python 对迭代中具有重复元素的字符串进行分区,python,python-3.x,Python,Python 3.x,我想迭代一个字符串并打印每个分区字符串的元组,如下所示: for letter in myString: ... myList = myString.partition(letter) ... print(myList) 这不是我想要的,因为partition在字母的第一个实例处分解字符串 假设我的目标是“披萨”。我想让这个for循环给我: ('', 'P', 'izza') ('P', 'i', 'zza') ('Pi', 'z', 'za') ('Piz', 'z', 'a
for letter in myString:
... myList = myString.partition(letter)
... print(myList)
这不是我想要的,因为partition
在字母的第一个实例处分解字符串
假设我的目标是“披萨”。我想让这个for
循环给我:
('', 'P', 'izza')
('P', 'i', 'zza')
('Pi', 'z', 'za')
('Piz', 'z', 'a')
('Pizz', 'a', '')
但是,由于分区在它找到的第一个“z”处断开,所以在第四次迭代中我得到了一些其他东西:
('', 'P', 'izza')
('P', 'i', 'zza')
('Pi', 'z', 'za')
('Pi', 'z', 'za')
('Pizz', 'a', '')
更改我的for
循环的最简单方法是什么
编辑: 另一方面,为什么
分区
方法只将字符串作为参数?我想通过将一个数字传递到.partition,通过索引myString来解决我的问题
s = "Pizza"
for i in range(len(s)):
print((s[:i],s[i],s[i+1:]))
您可以尝试以下方法:
for i in range(len(myString)):
myList = (myString[:i], myString[i], myString[i+1:])
print(myList)
根据您的用例,您可以将其打包到生成器中:
def expose_字母(单词):
对于范围内的i(len(word)):
产生字[:i],字[i],字[i+1:]
对于拆分字母(“披萨”):
打印(拆分)
partition是一种字符串方法,它将另一个字符串的一部分作为输入,以知道在何处进行分区
for i in range(len(myString)):
myList = (myString[:i], myString[i], myString[i+1:])
print(myList)