亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

拆分 Python 字符串

拆分 Python 字符串

斯蒂芬大帝 2022-10-18 15:53:31
將字符串分成兩個字符對。如果字符串包含奇數個字符,則最后一對中缺少的第二個字符應替換為下劃線 ('_')。輸入:一個字符串。輸出:一個可迭代的字符串。例子:split_pairs('abcd') == ['ab', 'cd'] split_pairs('abc') == ['ab', 'c_']
查看完整描述

4 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

import textwrap


def split_pairs(input):

    # Use textwrap to split the input into chunks of two characters

    split = textwrap.wrap(input, 2)


    # In your example I see you want a "_" if string is odd length

    # Check the length of the last chunk, and if it is 1, add a "_"


    if len(split[-1]) == 1:

        split[-1] += "_"

    return split



print(split_pairs('abcd'))

print(split_pairs('abc'))


查看完整回答
反對 回復 2022-10-18
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我的解決方案是:


import re


def solution(s):

    return re.findall(".{2}", s + "_")


查看完整回答
反對 回復 2022-10-18
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

試試這個沒有導入的簡短函數:


def split_pairs(inp):

    pairs = [inp[2*i:2*i+2] for i in range(len(inp) // 2)]

    if len(inp) % 2 == 1:

        pairs.append(f'{inp[-1]}_')

    return pairs


查看完整回答
反對 回復 2022-10-18
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

st = input('Input a string:')

arr = [] 

if len(st)%2==0:

    for i in range(0,len(st)-1,2):

        arr.append(st[i]+st[i+1])

else:

    st +='_'

    for i in range(0,len(st)-1,2):

        arr.append(st[i]+st[i+1])

print(arr)

另外,如果您想輸入長文本并在輸入后嘗試 st = st.replace(' ','') 去除空格:


st = input('Input a string:')

st = st.replace(' ','')

arr = [] 

if len(st)%2==0:

    for i in range(0,len(st)-1,2):

        arr.append(st[i]+st[i+1])

else:

    st +='_'

    for i in range(0,len(st)-1,2):

        arr.append(st[i]+st[i+1])

print(arr)


查看完整回答
反對 回復 2022-10-18
  • 4 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號