gpt4 book ai didi

python - 每 4 个字符插入一次

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:11 25 4
gpt4 key购买 nike

我看到这个问题的解决方案是其他问题,但不是在 Python 中。我想知道,如何在字符串中每 x 个字符后插入一个字符?例如,每四个字符后有一个正斜杠:

Before:
AsQs7d4dJh2h

After:
AsQs/7d4d/Jh2h

我知道在 Python 中我必须使用切片表示法。x = AsQs7d4dJh2hx = x[0:4]

但这只给了我第一个实例,我希望能够在任何字符串上执行此操作,而不管该字符串的长度

更新新问题:我想做的是将字符串分成卡片对(2 张德州扑克),问题是该算法没有考虑到“10”卡,因此每 4 张卡片分开是行不通的,例如,当面对字符串中的 10 卡时会发生这种情况:

AsQs/10dA/h10h/2h
AsQs/10dA/h9h8/h
AsQs/10dA/h9h7/h
AsQs/10dA/h9h6/h
AsQs/10dA/h9h5/h
AsQs/10dA/h9h4/h
AsQs/10dA/h9h3/h
AsQs/10dA/h9h2/h
AsQs/10dA/h8h7/h
AsQs/10dA/h8h6/h

所以我需要帮助的是如何插入正斜杠或从字符串中提取所有 2 手牌(在本例中为 3 手牌),而不管字符串中是否有 1 张或多张“10”牌?

完整算法:

import itertools

strOutput = ""
lstMaster = ['As', 'Ks', 'Qs', 'Js', '10s', '9s', '8s', '7s', '6s', '5s', '4s', '3s', '2s',\
'Ad', 'Kd', 'Qd', 'Jd', '10d', '9d', '8d', '7d', '6d', '5d', '4d', '3d', '2d',\
'Ac', 'Kc', 'Qc', 'Jc', '10c', '9c', '8c', '7c', '6c', '5c', '4c', '3c', '2c',\
'Ah', 'Kh', 'Qh', 'Jh', '10h', '9h', '8h', '7h', '6h', '5h', '4h', '3h', '2h']

tupMasterEdited = itertools.combinations(lstMaster, 6)
lstMasterEdited = list(tupMasterEdited)

for combo in lstMasterEdited:
combo = str(combo).replace("(", "").replace(")", "").replace(" ", "").replace(",", "").replace("'", "")
combo = '/'.join([combo[i:i+4] for i in range(0, len(combo), 4)])
print(combo)

最佳答案

可能不是最好的解决方案:

'/'.join([str[i:i+4] for i in range(0, len(str), 4)])

>>> str = "AsQs7d4dJh2h"
>>> '/'.join([str[i:i+4] for i in range(0, len(str), 4)])
'AsQs/7d4d/Jh2h'
>>> str = "sdfjsdhjfkbsdajka"
>>> '/'.join([str[i:i+4] for i in range(0, len(str), 4)])
'sdfj/sdhj/fkbs/dajk/a'

关于python - 每 4 个字符插入一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23439082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com