如何将list Compherence与method.index()一起使用

2024-10-01 16:46:23 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在列表索引和字符串之间排序

def shuffle(plain_txt,mylist):
    return ''.join([plain_txt[i] for i in mylist])
     
    
def resorting(shuffle_txt,mylist):
    return shuffle(shuffle_txt, [mylist.index(0)])

print(shuffle('abcd',[2,1,3,0]))
print(resorting('cbda',[2,1,3,0]))

第一个shuffle函数,它将根据列表生成shuffle字符串,例如(str)abcde:(list)[0,4,3,2,1],然后输出是aedcb,因此我创建了函数restring,它将返回字符串序列到shuffle之前


Tags: 函数字符串intxt列表forreturn排序
2条回答

如果resorting()应该撤消shuffle()所做的操作,则需要迭代字符串中的字符和列表中的索引。然后必须将该字符分配给结果字符串中的该索引

def resorting(shuffle_txt, mylist):
    result_list = ['_'] * (max(mylist) + 1)
    for c, index in zip(shuffle_txt, mylist):
        result_list[index] = c
    return ''.join(result_list)

请注意,并非所有洗牌都可以完全反转。如果mylist缺少任何索引,那么这些字符将不会出现在结果字符串中,并且无法知道它们最初是什么resorting()将{}放在那些未知的地方

假设resorting()意味着逆转shuffle()的作用,一种简洁的方法是:

def resorting(text, indexes):
    d = {i: c for c, i in zip(text, indexes)}
    return ''.join(d[i] for i in sorted(indexes))

相关问题 更多 >

    热门问题