我想将此字符串 A->B->C->D->E->F 拆分为子字符串 A->B,B->C,C->D,D->E,E-> F.
我尝试使用 split 和分隔符作为“->”,但这并没有以我想要的方式给出输出。非常感谢这里的帮助!
您可以按照您所做的操作将所有字母按顺序放入列表中,然后只需执行类似 for 循环的操作,从每个字母生成索引为“idx”和“idx + 1”的所需子字符串
my_string = "A->B->C->D->E->F"
items = my_string.split("->")
substrings = []
for idx in range(len(items) - 1):
substrings.append(items[idx] + "->" + items[idx+1])
OP 不清楚,但可能需要子字符串列表。在这种情况下...
from itertools import pairwise
s = "A->B->C->D->E->F"
result = ["->".join(p) for p in pairwise(s.split("->"))]
print(result)
输出:
['A->B', 'B->C', 'C->D', 'D->E', 'E->F']
str.split
、itertools.pairwise
、map
和 str.join
:
from itertools import pairwise
s = 'A->B->C->D->E->F'
out = ','.join(map('->'.join, pairwise(s.split('->'))))
输出:
'A->B,B->C,C->D,D->E,E->F'
如果您有 Series/DataFrame,则逻辑相同:
from itertools import pairwise
df = pd.DataFrame({'col': ['A->B->C->D->E->F']})
df['out'] = df['col'].map(lambda x: ','.join(map('->'.join, pairwise(x.split('->')))))
col out
0 A->B->C->D->E->F A->B,B->C,C->D,D->E,E->F