我是Python的新手,我正在寻找一种方法将列表中的项目分配到单个变量中.这一点是在Blender中将各个项目显示为文本对象.这是我到目前为止所拥有的,但我知道有一个更有效的方法来做这件事.
file = open('lyrics.conf')
data = file.read()
file.close()
b = data.split('/')
v = len(b)
if v >= 1:
v1 = b[0]
if v >= 2:
v2 = b[1]
if v >= 3:
v3 = b[2]
if v >= 4:
v4 = b[3]
if v >= 5:
v5 = b[4]
if v >= 6:
v6 = b[5]
if v >= 7:
v7 = b[6]
if v >= 8:
v8 = b[7]
if v >= 9:
v9 = b[8]
if v >= 10:
v10 = b[9]
Run Code Online (Sandbox Code Playgroud)
如果你真的想要个别变量,在某些时候你至少要做一个解包 v1,v2,v3,v4,v5,v6,v7,v8,v9,v10 = some_list
但你为什么要这样做呢?如果某事物是一个集合/事物清单,那么最好这样表示.
有了b你已经拥有你想要的物品的方便列表.只需访问它们,当您需要它们的索引时b[0], b[1], ....使用太多变量填充命名空间,其值可以在没有重大问题的情况下存储在容器中,这是一个设计缺陷(在我看来).
这是一种将新变量注入当前模块命名空间的方法,但它是邪恶的:
#!/usr/bin/env python
import sys
somelist = range(10)
for i, item in enumerate(somelist):
setattr(sys.modules[__name__], 'v{0}'.format(i), item)
print v1 + v2
# => 3
print v1 * v2 * v3 * v4 * v5 * v6 - v7 * v8 - v9 + 11
# => ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7583 次 |
| 最近记录: |