首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:'bool‘对象不可迭代

Python:'bool‘对象不可迭代
EN

Stack Overflow用户
提问于 2018-07-17 02:47:32
回答 2查看 5.1K关注 0票数 0

我正在运行这段代码,试图使用dict分配键值对。将数据(key = xvalue,yvalue)存储在两个单独的数组中。即

代码语言:javascript
复制
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:

代码语言:javascript
复制
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,例如:

代码语言:javascript
复制
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。任何帮助都是非常感谢的。我知道数学部分不正确,因为我只是展示了一些语法来帮助解释。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-17 02:50:11

取代:

代码语言:javascript
复制
for x in xcord and y in ycord :

通过以下方式:

代码语言:javascript
复制
for x,y in zip(xcord,ycord):

还有更多的错误,所以代码应该是这样的:

代码语言:javascript
复制
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()
票数 2
EN

Stack Overflow用户

发布于 2018-07-18 04:04:07

感谢大家对我早期python编码的支持。

我找到的解决方案与我所期望的输出是一样的:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51372523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档