为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过while循环动态创建变量?

如何通过while循环动态创建变量?

我想通过Python中的while循环动态创建变量。有没有人有这样的创造性手段?如何通过while循环动态创建变量?
查看完整描述

4 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

使用exec()方法。例如,假设您有一个字典,并且您希望将每个键转换为具有原始字典值的变量,则可以执行以下操作。


Python 2


>>> c = {"one": 1, "two": 2}

>>> for k,v in c.iteritems():

...    exec("%s=%s" % (k,v))


>>> one

1

>>> two

2

Python 3


>>> c = {"one": 1, "two": 2}

>>> for k,v in c.items():

...    exec("%s=%s" % (k,v))


>>> one

1

>>> two

2


查看完整回答
反对 回复 2019-05-27
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

将东西填充到全局和/或本地命名空间中并不是一个好主意。使用dict是如此的一些其他语言... d['constant-key'] = value只是看起来很尴尬。Python是OO。用大师的话来说:“”“命名空间是一个很棒的主意 - 让我们做更多的事情!”“”


像这样:


>>> class Record(object):

...     pass

...

>>> r = Record()

>>> r.foo = 'oof'

>>> setattr(r, 'bar', 'rab')

>>> r.foo

'oof'

>>> r.bar

'rab'

>>> names = 'id description price'.split()

>>> values = [666, 'duct tape', 3.45]

>>> s = Record()

>>> for name, value in zip(names, values):

...     setattr(s, name, value)

...

>>> s.__dict__ # If you are suffering from dict withdrawal symptoms

{'price': 3.45, 'id': 666, 'description': 'duct tape'}

>>>


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 1144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信