我正在运行此代码,以尝试使用dict分配键值对。存储在两个单独的数组中的数据(键= xvalue,yvalue)。即
class Song
{
public string Name { get; private set; }
public LinkedList<Note> notes { get; private set; }
public Song(string name)
{
this.Name = name;
this.notes = new LinkedList<Note>();
}
}
但是当我运行它时,出现TypeError:
1 def main():
2 path = 'some/path/'
3
4
5 d = {}
6 xcord = [1.2,2.4,2.9,3.0,4.1]
7 ycord = [1.0,2.0,3.0,4.0,5.0]
8 a=0
9 b=0
10 while b < 136 and a <= 21 :
11 for x in xcord and y in ycord :
12 --> d{b}.append(xcord[x],ycord[y])
13 b=b+1
14 if a == 21:
15 a=0
16 else:
17 a=a+1
18 print(d)
19
20 if __name__ == "__main__":
21 main()
我正在寻找将xcord和ycord数组中的数据追加到字典中的方法,显然我没有正确执行此操作。
我当时想我可以参考dict来进行类似这样的未来计算:
File "some/path/", line 21, in <module>
main()
File "some/path", line 12, in main
for x in xcord and y in ycord :
TypeError: 'bool' object is not iterable
请以Python的方式批评我,我是Python的新手。和任何帮助表示赞赏。我知道数学部分不正确,因为我只是显示了一些语法来解释
答案 0 :(得分:2)
替换:
for x in xcord and y in ycord :
使用:
for x,y in zip(xcord,ycord):
还有更多的错误,因此您的代码应如下所示:
def main():
path = 'some/path/'
d = {}
xcord = [1.2,2.4,2.9,3.0,4.1]
ycord = [1.0,2.0,3.0,4.0,5.0]
a=0
b=0
while b < 136 and a <= 21 :
for x,y in zip(xcord,ycord):
if b in d:
d[b].append(x,y)
else:
d[b]=[x,y]
b=b+1
if a == 21:
a=0
else:
a=a+1
print(d)
if __name__ == "__main__":
main()
答案 1 :(得分:0)
感谢大家在我早期的python编码时代的支持。
我发现可以与我期望的输出完全兼容的解决方案是:
d = {}
b = 0
xcord = [1.2,2.4,2.9,3.0,4.1]
ycord = [1.0,2.0,3.0,4.0,5.0]
for x,y in zip(xcord,ycord):
if b in d:
d[b].append(x,y)
else:
d[b] = [x,y]
b=b+1