Python,使用其中一个值重命名列表

Bru*_*779 1 python

我需要在python中操作几个列表,我需要每个列表中包含它包含的第三个值的名称,但是我无法解决这个问题的语法.

谢谢

编辑:

我正在为nagios编写一个插件,它从mssql服务器中提取数据,我需要格式化nagios perfdata的数据.我已经完成了大部分工作,我只需要格式化数据.

def main():

parser = optparse.OptionParser(usage=usage)
parser.add_option("-H", "--host", dest="host", help="hostname or ip address to check", default="localhost")
parser.add_option("-u", "--user", help="DB username", type="string")
parser.add_option("-p", "--password", help="DB password")
parser.add_option("-P", "--port", help="database port", default="1433")
parser.add_option("-d", "--database", help="Database to query")

(options, args) = parser.parse_args()

con_string = "DRIVER=FreeTDS;SERVER={0};PORT={1};UID={2};PWD={3};DATABASE={4}" . format(options.host,options.port,options.user,options.password,options.database)
try:
    con = pyodbc.connect(con_string)
except:
    print "CRITICAL: error connecting, wrong options or database may be down"
    print sys.exc_info()
    exit(2) # crtical

# if we are connected, let's fetch some data!    
cur = con.cursor()
cur.execute(query)
rows = cur.fetchall()
Run Code Online (Sandbox Code Playgroud)

现在,我需要打印nagios perfdata的数据.我从来不需要perfdata有动态名称,所以我被卡住了.

我经常这样做:

print 'ramTotal={0:.2f}{1}' .format(ramTotal/1024,UOM)
Run Code Online (Sandbox Code Playgroud)

但是我不能把row [3]的值放在我需要的地方

print 'row[3]={0:.1f}{1}' .format(row[0],row[1])
Run Code Online (Sandbox Code Playgroud)

不起作用

Jor*_*ley 6

all_my_lists = {} #USE A DICT!!!
all_my_list[listx[2]] = listx  #listx[2] gives the 3rd value in listx
Run Code Online (Sandbox Code Playgroud)

我认为你正在寻找...如果你真的想设置变量名,你需要搞乱locals()和globals()...这是粗略的