gpt4 book ai didi

python:根据原始索引添加列表元素(同时更新列表)

转载 作者:行者123 更新时间:2023-12-01 01:40:15 25 4
gpt4 key购买 nike

我有一个这样的序列:

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

我认为问题可能在于,当我将一个项目合并到字符串中时,索引会发生变化,因此第一个项目之后的所有后续包含项都不在正确的位置?

谁能解释一下如何正确执行此操作?

最佳答案

基于@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

关于python:根据原始索引添加列表元素(同时更新列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51966528/

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