我有两张清单。第一个是我的数据列表,第二个是随机生成的数字列表:
alist = ['ABCDEF', 'GHIJKL', 'MNOPQR', 'STUVWX']
blist = [2,0,3,1]
我想根据blist中的值,从alist中的每个项目中提取3个字符作为子串
我期望的结果:
['CDE', 'GHI', 'PQR', 'TUV']
如何根据不同列表中描述的起始模体位置从一个列表中生成X个字符的子字符串
编辑:
下面的函数实现了我想要的结果,但是有更好的方法来完成这个任务吗
x = -1
clist = []
for i in alist:
tracker = 1
x = x + tracker
substring = i[blist[x]:blist[x]+3]
clist.append(substring)
以下是一个解决方案:
该程序的工作原理:
首先,它在循环中运行一段时间。 要分析的索引位置是blist的x值。 最后,将列表中索引位置的前三个字符附加到输出列表中
您可以定义一个函数来执行此操作,并使用内置的
enumerate()
短列表理解,使用
zip
将每个“计数”与要缩短的项链接,然后使用索引运算符选择和修剪字符串:相关问题 更多 >
编程相关推荐