首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用变量python3进行计数

使用变量python3进行计数
EN

Stack Overflow用户
提问于 2021-07-01 04:54:57
回答 1查看 32关注 0票数 0

我正在尝试找到一个快速测试的解决方案,从而切换一个非常长的变量列表。我将它们命名为:

代码语言:javascript
运行
复制
mcp1pin1
mcp1pin2
mcp1pin3
...
mcp2pin1
mcp2pin2
mcp2pin3
...

因此,手动输入它们将非常困难和冗长,所以我想我可以使用count()函数来完成这项工作。

我试过了:

代码语言:javascript
运行
复制
while True:
        count = 0
        while count < 16:
           mcp1pin(count).value = True
           time.sleep(0.1)
           mcp1pin(count).value = False
           count = count +1

但是我不能让它工作...我觉得我可能快到了。有人对我有什么建议吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 10:22:13

首先不要使用太长的变量列表,而是使用像列表这样的数据结构。

您没有提到实际的值是什么,但这里有一些伪代码:

代码语言:javascript
运行
复制
mcps = [
    [<mcp1pin1>, <mcp1pin2>, <mcp1pin3>, ...],
    [<mcp2pin1>, <mcp2pin2>, <mcp2pin3>, ...],
    ...
    ]

对于更具体的示例,您可以这样做:

代码语言:javascript
运行
复制
class Pin:
    def __init__(self, value=False):
        self.value = False

mcps = [
    [Pin() for _ in range(3)]
    for _ in range(2)
    ]

for mcp in mcps:
    for pin in mcp:
        pin.value = True

虽然,列表从0开始,并且您丢失了名称中的"pin“,因此您可以考虑使用像这样的dicts,尽管它更加笨拙:

代码语言:javascript
运行
复制
mcps = {
    i: {'pins': {
        j: Pin() for j in range(1, 4)
        }}
    for i in range(1, 3)
    }

for mcp in mcps.values():
    for pin in mcp['pins'].values():
        pin.value = True

注:dicts preserve insertion order as of Python 3.7

相关:How do I create variable variables?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68201514

复制
相关文章

相似问题

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