Python:使用循环对几个变量执行相同操作

时间:2018-03-19 09:00:07

标签: python loops variables

我有30个变量,模式为aod7039, aod7040, ...., aod7068。 我想对所有这些变量进行相同的操作(即计算轴上的平均值)并覆盖原始变量。 到目前为止,我写了30次相同的行,并想知道是否有更短更简单的方法可以做到这一点? 我对每个想法都很满意!

5 个答案:

答案 0 :(得分:2)

这将为您提供以'aod'

开头的所有变量值
values = [v for k,v in globals() if k.startswith('aod')]

但有30个变量闻起来很糟糕。

答案 1 :(得分:2)

首先,不要使用30个变量,使用列表aod[] 其次,使用

for i in range(7039, 7069):
    aod[i] = yourFunction(aod[i])

覆盖现有列表

答案 2 :(得分:1)

如果我理解你的问题,你只想迭代这些变量吗?

如果是这样,你可以保留对某些列表/字典的引用,然后以这种方式迭代/更新。

List = []
List.append(aod7039)
for item in List:
    #do something

答案 3 :(得分:1)

  

我有30个变量的模式aod7039,aod7040,....,aod7068

然后您遇到了设计问题 - 您应该使用listdict。将所有这些变量替换为listdict(或collections.OrderedDict,如果您需要密钥访问权限,同时保留插入顺序),那么只需迭代您的容器,即

# with a list:
for index, item in enumerate(yourlist):
    yourlist[index] = do_something_with(item)

# with a dict or OrderedDict:
for key, item in enumerate(yourdict):
    yourdic[key] = do_something_with(item)

答案 4 :(得分:0)

将30个变量存储在一个列表中,并使用map来解决它而不需要任何循环:

varlist=[aod7039, aod7040, ...., aod7068]
result=list(map(yourfunction, varlist))