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

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

python:基于原始索引添加列表元素(同時更新列表)

python:基于原始索引添加列表元素(同時更新列表)

aluckdog 2021-05-30 11:42:52
我有一個這樣的序列:ABCDEFGHIJKL我想插入字符串:'-(c0)-' after elements 1 and 3'-(c1)-' after elements 2 and 4'-(c2)-' after elements 5 and 6這是我寫的那種代碼:list_seq = list('ABCDEFGHIJKL')new_list_seq = list('ABCDEFGHIJKL')start_end = [(1,3), (2,4), (5,6)]for index,i in enumerate(start_end):    pair_name = '-(c' + str(index) + ')-'    start_index = int(i[0])      end_index = int(i[1])     new_list_seq.insert(start_index, pair_name)    new_list_seq.insert(end_index, pair_name)print ''.join(new_list_seq)我想要的輸出是:AB-(c0)-C-(c1)-D-(c0)-E-(c1)-F-(c2)-G-(c2)-HIJKL(其中c0在1和3位置之后插入,c1在2和4之后插入,c2在5和6之后插入)。但是我得到的輸出是:A-(c0)--(c1)-B-(c1)--(c2)--(c2)--(c0)-CDEFGHIJKL我認為可能的問題是,當我將一個項目合并到字符串中時,索引會發生變化,那么第一個之后的所有后續包含的位置都不正確?誰能解釋一下如何正確地做到這一點?
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

基于@ r.user.05apr的一個很好的主意,即一個字符一個字符地遍歷整個輸入字符串,我想添加一個可能性以將其概括為任意長列表start_end:


s = 'ABCDEFGHIJKL'

res = list()

for nr, sub in enumerate(s):

    res.append(sub)

    try:

        i = [nr in x for x in start_end].index(True)

        res.append('-(c' + str(i) + ')-')

    except:

        pass

res = ''.join(res)        

print(res)    

# AB-(c0)-C-(c1)-D-(c0)-E-(c1)-F-(c2)-G-(c2)-HIJK


查看完整回答
反對 回復 2021-06-01
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

希望能幫助到你:


s = 'ABCDEFGHIJKL'

res = list()

for nr, sub in enumerate(s):

    res.append(sub)

    if nr in (1, 3):

        res.append('-(c0)-')

    elif nr in (2, 4):

        res.append('-(c1)-')

    elif nr in (5, 6):

        res.append('-(c2)-')

res = ''.join(res)        

print(res)    

# AB-(c0)-C-(c1)-D-(c0)-E-(c1)-F-(c2)-G-(c2)-HIJKL 


查看完整回答
反對 回復 2021-06-01
  • 2 回答
  • 0 關注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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