如何直接从列表范围分配变量值

Zer*_*l13 1 python

我正试图找到一种更好,更pythonic的方式来解决这段代码:

for i in rows:
    row_data = i.findAll('td')
    serial = row_data[0]
    hostname = row_data[1]
    owner = row_data[2]
    memory = row_data[3]
    processor = row_data[4]
    os = row_data[5]
    model = row_data[6]
    ip = row_data[7]
Run Code Online (Sandbox Code Playgroud)

我正在尝试做这样的事情:

 [serial, hostname, owner, memory, etc..] = row_data[:7]
Run Code Online (Sandbox Code Playgroud)

关于如何实现这一点的任何想法?

有或没有索引我收到此消息:[serial,hostname,owner,memory,processor,os,model,be_ip] = row_data ValueError:要解压的值太多

NPE*_*NPE 6

你可以做到这一点:

>>> row_data = ['serial', 'hostname', 'ip']
>>> [serial, hostname, ip] = row_data
>>> serial
'serial'
>>> hostname
'hostname'
>>> ip
'ip'
Run Code Online (Sandbox Code Playgroud)

方括号[serial, hostname, ip]是可选的.

  • 值得一提的是它被称为[解包](http://en.wikibooks.org/wiki/Python_Programming/Tuples#Packing_and_Unpacking) (3认同)