好的,我已经看过很多关于这个主题的问题,但我找不到具体的问题答案。我有和TypeError一直困扰着我。在我的代码中,我一直试图非常天真地散列字符串,但我的挑战是在没有任何散列库和基本库(如“随机”或“时间”)的情况下(不知道为什么这是有用的)。到目前为止,这是我的代码:
import random
char_array = "Hello World!"
hash_lvl = random.getrandbits(15)
def hash (lvl, string, len_string):
a = 9
b = 2
new_array = []
for d in range(0, len_string):
new_array.extend(d)
for c in range(0, len_string):
globals()['string%s' % c] = (lvl/a)+(lvl*b)
a=a-1
b=b+1
print(char_array[0:])
if len(char_array) > 20:
print("You may not hash after 20 digits.")
elif len(char_array) < 21:
print("Hashing:")
hash(hash_lvl, char_array, len(char_array))
函数内部的for循环导致了这一点,如果你能回到我身边,我将不胜感激。
答案 0 :(得分:2)
替换
for d in range(0, len_string):
new_array.append(d)
与
list.extend
list.append
扩展了一个列表,import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def data_gen(t=0):
cnt = 0
while cnt < 1000:
cnt += 1
t += 0.1
yield t, np.sin(2*np.pi*t) * np.exp(-t/10.)
def init():
ax.set_ylim(-1.1, 1.1)
ax.set_xlim(0, 10)
del xdata[:]
del ydata[:]
line.set_data(xdata, ydata)
return line,
fig, ax = plt.subplots()
line, = ax.plot([], [], lw=2)
ax.grid()
xdata, ydata = [], []
def run(data):
# update the data
t, y = data
xdata.append(t)
ydata.append(y)
xmin, xmax = ax.get_xlim()
if t >= xmax:
ax.set_xlim(xmin, 2*xmax)
ax.figure.canvas.draw()
line.set_data(xdata, ydata)
return line,
ani = animation.FuncAnimation(fig, run, data_gen, blit=False, interval=10,
repeat=True, init_func=init, save_count=0)
plt.show()
在最后添加了一个项目。
答案 1 :(得分:1)
extend方法期望一个可迭代的(例如列表,元组或字符串),它会将iterable中的每个项添加到列表的末尾。 append方法将单个项添加到列表的末尾(可迭代或不可迭代)。