首页 > 解决方案 > python中整数和字符之间的数组

问题描述

 pat = "TATAG"
 DSIGMA = 4 //i used 4 character 'ACGT'
 m = len(pat)
 string = "ACGT"
 shift = [[0] * DSIGMA]*m
 for l in range(m):
   U[l] = 1
    for s in range(DSIGMA):
       shift[l][string[s]] = 1'''
Output

TypeError:列表索引必须是整数或切片,而不是 str


I build this code in c++ and run perfectly, but when i convert into python it doesn't work. How to fix my code? Thanks!

标签: python

解决方案


您现在正在编写 python :) 所以不要像///**/那样评论 并使用# 或 ''' '''进行评论。

小心空格/制表符:)

你在哪里定义了 U参数?你应该在某个地方定义它;你可以在这里找到并阅读类似的错误。

为什么你将string[s]作为索引传递?如果您需要通过字符串/键访问,您可以使用DICT 之类的东西。您可以在此处阅读相关内容。

删除```并在最后一行输出。

我不知道结果应该是什么,但是以这种方式更改代码不会出错:

pat = "TATAG"
DSIGMA = 4 # i used 4 character 'ACGT' ****
m = len(pat)
string = "ACGT"
shift = [[0] * DSIGMA]*m
U=[0,0,0,0,0] # DEFINE SOMETHING ****
for l in range(m):
    U[l] = 1
    for s in range(DSIGMA):
        # Change this to something else ****
        # string[s] is not ok as an index ****
        # shift[l][string[s]] = 1
        shift[l]=1

推荐阅读