第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

小寫(xiě)特定案例的列表,而不是其他案例

小寫(xiě)特定案例的列表,而不是其他案例

長(zhǎng)風(fēng)秋雁 2022-07-19 20:28:39
我目前有一個(gè)大小寫(xiě)格式不正確的字符串列表(由字母、大小寫(xiě)、數(shù)字和特殊字符組成)。我試圖實(shí)現(xiàn)的目標(biāo)是對(duì)具有以下格式的列表元素的所有實(shí)例進(jìn)行小寫(xiě):['ALLUPPERCASE', 'ALL_UPPER_WITH_UNDERSCORES', 'ALL-UPPER-EXCEPT (text here)']用外行的話來(lái)說(shuō),任何元素要么全部大寫(xiě),要么全部大寫(xiě),要么帶有下劃線“_”或連字符“-”(可以在同一元素中同時(shí)包含下劃線和連字符,或者除末尾之外的所有大寫(xiě)都有一個(gè)空格,然后小寫(xiě)但在括號(hào)中的短語(yǔ)。我希望列表中元素的所有其他情況都保持其大小寫(xiě)格式...如果一個(gè)元素的格式是這樣的The_Text_Here,那么該元素將保持其格式。我認(rèn)為可行的第一個(gè)解決方案是只查看 '(' 之前元素的大小寫(xiě),然后忽略 '(' 之后的任何內(nèi)容。我不相信連字符或下劃線會(huì)影響文本被讀取為全大寫(xiě);但是,我無(wú)法確定它們是否存在。將以下代碼想象為要遵循的格式:L1 = ['THRESHOLD_BAND', 'THRESHOLD_BAND (copy)', 'TICKER', 'TICKER-TWO',      'Title C (copy)', 'Title C (copy) (copy)']for i in L1:    **add code**    output = **add code**print('\n'.join(output))**terminal**$threshold_band threshold_band (copy) ticker ticker-two Title C (copy) Title C (copy) (copy)
查看完整描述

3 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用與您想要小寫(xiě)的模式匹配的正則表達(dá)式。


import re

def maybe_downcase(s):

    if re.match(r'^[A-Z_-]+(?:\s\(.*\))?$', s):

        return s.lower()

    else:

        return s


output = [maybe_downcase(x) for x in L1]

正則表達(dá)式匹配一系列大寫(xiě)字母、下劃線和連字符,可選地后跟空格和括號(hào)中的任何內(nèi)容。


查看完整回答
反對(duì) 回復(fù) 2022-07-19
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以執(zhí)行您在問(wèn)題中提到的類似方法,但檢查字符串中出現(xiàn)的任何小寫(xiě)字母,而不是匹配大寫(xiě)字母(沒(méi)有導(dǎo)入):


[x if any(y.islower() for y in x.split('(')[0]) else x.lower() for x in L1]

輸出:


['threshold_band', 

 'threshold_band (copy)', 

 'ticker', 

 'ticker-two',

 'Title C (copy)', 

 'Title C (copy) (copy)']         


查看完整回答
反對(duì) 回復(fù) 2022-07-19
?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

這會(huì)給你正確的輸出嗎?


L1 = ['THRESHOLD_BAND', 'THRESHOLD_BAND (copy)', 'TICKER', 'TICKER-TWO',

      'Title C (copy)', 'Title C (copy) (copy)']


L2 = []

for strng in L1:

    s0, *s1 = strng.split('(', 1)

    s0 = s0.lower() if s0 == s0.upper() else s0

    L2.append('('.join((s0, *s1)))


print(*L2, sep='\n')

輸出:


threshold_band

threshold_band (copy)

ticker

ticker-two

Title C (copy)

Title C (copy) (copy)


查看完整回答
反對(duì) 回復(fù) 2022-07-19
  • 3 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)