在python中,当访问列表中的某个项时,是否可以执行重复的字符串格式化操作?你知道吗
例如:
>>>from random import randint
>>>a = ["The random number is: {0}".format(randint(0,10))]
>>>print a[0]
The random number is: 3
>>>print a[0]
The random number is: 3
很明显,它是获取一个随机整数,格式化字符串,并在第一次定义列表时将其保存在列表中。撇开性能不谈,我想知道是否有可能覆盖这种行为。你知道吗
我知道如果我看到这个问题,我会回答类似“你做错了”,并会提供类似于下面的答案。。。你知道吗
>>>a = ["The random number is: {0}"]
>>>print a[0].format(randint(0,10))
但我们假设这不是解决这个问题的办法。我真的希望格式被定义,并在列表本身发生(如果可能的话)。你知道吗
另一个例子:
a = ["The some sweet string: {0}".format(someFunction),
"Another {0} different string {1}".format(someFunctionTwo, someFunctionThree)]
其中someFunction*在每次调用时提供“随机”结果。你知道吗
我知道这有点牵强,我可能不得不依赖已经提供的方法(感谢你的反馈),但是,我想我会给它一个机会。你知道吗
再次感谢。你知道吗
您可以创建一个类并重写
__str__
:但你是对的,我的第一个倾向是说你可能做错了。。。你知道吗
下面是另一个想法,在列表中保留格式字符串:
显然,这是不高效的(当您不一定需要函数时调用函数…),但它可以工作。你知道吗
最好使用函数:
相关问题 更多 >
编程相关推荐