在尝试在python中定义一系列数字变量时出现语法错误

2024-07-04 08:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将一系列变量定义为零,然后在程序的其余部分计算一系列不同情况的实例时更新它们

我不知道为什么我不能像下面那样设置它,但是不管我把这个结构放在哪里,IDLE说有语法错误并突出显示了2bktools的第一个实例

import os
import csv

os.chdir('/Users/me/Desktop/SubjError')
for subject in ['100307', '100408', '101107', '101309', '101915']:

    2bktools = 0
    0bkbody = 0
    2bkfaces = 0
    0bktools = 0
    2bkbody = 0
    2bkplaces = 0
    0bkfaces = 0
    0bkplaces = 0
    #counts and updates instances of each variable

我想一定有更有效的方法把一系列变量设为零,但我不知道会是什么


Tags: csv实例import程序定义os情况结构
2条回答

在Python中,变量名不能以数字开头

无论如何,对于您的用例,我认为嵌套的dict会很有用:

from pprint import pprint

subjects = ['100307', '100408', '101107', '101309', '101915']
keys = ['2bktools', '0bkbody', '2bkfaces', '0bktools', '2bkbody', '2bkplaces', '0bkfaces', '0bkplaces']

data = {subject: {key: 0 for key in keys} for subject in subjects}

pprint(data)

输出:

{'100307': {'0bkbody': 0,
            '0bkfaces': 0,
            '0bkplaces': 0,
            '0bktools': 0,
            '2bkbody': 0,
            '2bkfaces': 0,
            '2bkplaces': 0,
            '2bktools': 0},
 '100408': {'0bkbody': 0,
            '0bkfaces': 0,
            '0bkplaces': 0,
            '0bktools': 0,
            '2bkbody': 0,
            '2bkfaces': 0,
            '2bkplaces': 0,
            '2bktools': 0},
... more of the same...

然后可以使用标准索引语法访问任何想要的属性;例如,data['100307']['2bktools']

您正在尝试定义以数字开头的变量。在python中不能这样做

Here is some info关于变量名的结构

相关问题 更多 >

    热门问题