f = open("key.txt", 'rb')
k= f.read()
def bits(f):
bytes = (ord(k) for k in f.read())
for k in bytes:
for i in xrange(8):
yield (k >> i) & 1
for k in bits(open('key.txt', 'r')):
print k
kt= [k[57],k[2],k[4],k[43]]
print kt
我收到错误消息
Traceback (most recent call last):
File "k.py", line 11, in <module>
kt= [k[57],k[2],k[4],k[43]]
TypeError: 'int' object has no attribute '__getitem__'
我如何纠正它?
答案 0 :(得分:0)
由于scoring::plus_minus_one matchScoring;
std::function<int_fast16_t(int,int)> score_function = matchScoring;
nw_score_matrix(x.begin(), x.end(), y.begin(), y.end(), std::move(score_function));
会产生一个在行bits()
上分配给k
的整数,因此for k in bits(open('key.txt', 'r')):
行上的索引运算符自然会失败,因为kt= [k[57],k[2],k[4],k[43]]
没有&#39} ; t已定义int
。
答案 1 :(得分:0)
您需要为ProxyPass /images !
ProxyPass / ajp://domain.tld:8010/ nocanon
提供一个名称:
bits(...)
您的工作没有成功,因为x = list(bits(open('key.txt', 'r')))
for k in x:
print k
kt = [x[57], x[2], x[4], x[43]]
中的每个项目都分配了k
。 bits(...)
循环完成后,它仍将等于最后一项。相反,你需要给整个事物命名。
答案 2 :(得分:0)
一开始你正在做,
k = f.read()
以后当你想要做的时候,
kt= [k[57],k[2],k[4],k[43]]
您基本上使用的是第一个k
,因为这是此范围内唯一可见的k
。因此,您收到了错误。
你可能想要删除循环并执行类似的操作。
k = list(bits(open('file.txt', 'r')))
kt = [k[57], k[2], k[4], k[43]]
print kt