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

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

從字符串解析元組?

從字符串解析元組?

桃花長相依 2019-10-21 11:00:24
假設(shè)我有一個字符串,該字符串的形式應(yīng)該與元組相同,例如"(1,2,3,4,5)"。將其轉(zhuǎn)換為實(shí)際元組的最簡單方法是什么?我想做的一個例子是:tup_string = "(1,2,3,4,5)"tup = make_tuple(tup_string)只是tuple()在字符串上運(yùn)行會使整個事情變成一個大元組,而我想做的就是將字符串理解為一個元組。我知道我可以為此使用正則表達(dá)式,但是我希望有一種更便宜的方法。有想法嗎?
查看完整描述

3 回答

?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個贊

它已經(jīng)存在!


>>> from ast import literal_eval as make_tuple

>>> make_tuple("(1,2,3,4,5)")

(1, 2, 3, 4, 5)

但是,請注意極端情況:


>>> make_tuple("(1)")

1

>>> make_tuple("(1,)")

(1,)

如果您的輸入格式與此處的Python不同,則您需要單獨(dú)處理這種情況或使用諸如之類的其他方法tuple(int(x) for x in tup_string[1:-1].split(','))。


查看完整回答
反對 回復(fù) 2019-10-21
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個贊

我們也可以自己解析它。假設(shè)我們有Python返回的元組,如下所示:


((2, 'C/C++', 0, 'clang_cpp'), (3, 'Python相關(guān)', 0, 'python'))

這是我們的方法


首先,我們繼續(xù)讀取元組字符串中的字符,但存儲最后一個左分號的位置以及遇到的分號數(shù)(我們可以將其稱為左分號級,對于右分號也是如此),每當(dāng)遇到右分號時,我們以下內(nèi)容:


從最后一個分號到當(dāng)前右分號的一個子字符串。(在此子字符串中,不再有分號,我們只是將其用“,”分割成數(shù)組,假設(shè)新數(shù)組是M)

然后,將其追加M到結(jié)果數(shù)組中,該數(shù)組將存儲all M。

第三,從原始字符串中刪除我們提取的子字符串。最后,執(zhí)行與步驟1相同的操作,直到左右分號的電平變?yōu)?。

JavaScript代碼如下所示:

function parseTuple(t){

    var lc = "(";

    var rc = ")";

    var lc_level = 0;

    var rc_level = 0;

    var last_lc = 0;

    var last_rc = 0;

    var result = [];

    for(i=0;i<t.length;i++){

        if(t[i] == lc){

            lc_level++;

            last_lc = i;

        }else if(t[i] == rc){

            rc_level++;

            last_rc = i;

        }

        if(rc_level == 1){

            var substr = t.slice(last_lc+1,last_rc);

            var data = substr.split(",");

            result.push(data);

            lc_level--;

            rc_level--;

            i = 0;

            t = t.slice(0,last_lc) + t.substring(last_rc+1);

        }

        if(lc_level == rc_level && lc_level==0){

            break;

        }

    }

    return result;

}


查看完整回答
反對 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 359 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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