python变量长度有限制吗_Python中未知长度列表的变量赋值

您可以使用一些简单的列表乘法:# use a constant at the top of your script in case the number of columns

# change in the future

COLUMNS = 3

# ... other code ...

all = [s.text for s in soup.find_all('a')]

all.extend(['']*(COLUMNS-len(all))) # append 1 empty string for each missing text field

var1, var2, var3 = all

但正如大卫·泽门斯在评论中提到的,必须有更好的方法来做到这一点。如果没有看到消耗文本变量的代码,我不能提出任何具体的建议,但是您应该认真地重新考虑您的设计。即使像我建议的那样使用常量,var1, var2, var3 = all仍然会使将来维护和修改此脚本变得困难。在

根据你的编辑,我建议你改用词典。这将允许您按名称引用特定数据,就像引用变量一样,但保留了列表的灵活性,而不是限制您使用硬编码的变量数量。在

例如:

^{pr2}$

如果all是['a', 'b'],则此代码将生成:{'var1': 'b', 'var0': 'a'}

变量赋值实际上只不过是一个映射——你的代码知道变量名,它可以查找相应的值。字典可以让你的代码动态地构建映射,而不必硬编码。现在我们已经构建了一个字典,其中varX变量是动态构造的。如果您决定添加另一列,您根本不必更改此代码。您只需添加使用var4的代码,并准备好在字典中不存在var4时捕捉异常。不再添加空字符串-您的代码已经准备好处理它要查找的数据不存在的情况。在

注意事项:enumerate()函数迭代iterable对象并为您增加一个计数器。在我的代码中,i是计数器(因此我们可以构造'var1'、'var2'。。。字符串),并且field是列表中的每一项。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值