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

标签 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]

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

 [serial, hostname, owner, memory, etc..] = row_data[:7]

关于如何实现这一点有什么想法吗?

无论有没有索引,我都会收到这条消息: [序列号、主机名、所有者、内存、处理器、操作系统、型号、be_ip] = row_data ValueError:要解压的值太多

最佳答案

你完全可以这样做:

>>> row_data = ['serial', 'hostname', 'ip']
>>> [serial, hostname, ip] = row_data
>>> serial
'serial'
>>> hostname
'hostname'
>>> ip
'ip'

[serial, hostname, ip] 两边的方括号是可选的。

关于python - 如何直接从列表范围分配变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711494/

相关文章:

python - 如何在 Python 3 中向后搜索几行?

java - Java 中 RequestConfig 的 Python 等价物是什么?

python - 如何在不拆分字符串的情况下展平列表?

python - Pandas 应用函数将多个值返回到 Pandas 数据框中的行

.NET 开发人员使用 Python 还是 Ruby?

python - 在 Windows 8.1 上的 python 中使用 opencv 和 zbar 来检测二维码

python - 如何在 Pytorch 中的模块之间共享权重?

python - 在Python中的实例方法上调用多处理池

python - 为什么 Python 中同时存在 sre 和 re 模块?

python - 将示例日期列表转换为 GMT