我正在运行这段代码,试图使用dict分配键值对。将数据(key = xvalue,yvalue)存储在两个单独的数组中。即
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()但是当我运行这个程序时,我会得到一个TypeError:
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我希望将来自xcord和ycord数组的数据附加到字典中,而且我显然没有正确地这样做。
我在想,我可以在以后的计算中引用dict,例如:
print(d{0})
# with a result
{1.2 , 1.0}
# or say I want to calculate slop between two points
sqrt((d{0, [1],[]} - d{2, [1],[]})sqrd + (d{0, [],[1]} - d{2, [], [1]})sqrd)
# with a result
3.2请批评我的毕达通方式,我是新的Python。任何帮助都是非常感谢的。我知道数学部分不正确,因为我只是展示了一些语法来帮助解释。
发布于 2018-07-17 02:50:11
取代:
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()发布于 2018-07-18 04:04:07
感谢大家对我早期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+1https://stackoverflow.com/questions/51372523
复制相似问题