简化迭代

时间:2012-02-05 14:50:09

标签: python iterator

str = ''

for i in self.obj:
    str += '[' + self.obj[i] + ']';

有没有办法简化代码?

1 个答案:

答案 0 :(得分:6)

假设self.obj是dict:

string = ''.join('[%s]' % x for x in self.obj.itervalues())

如果它是实现__getitem__的自定义对象:

string = ''.join('[%s]' % self.obj[x] for x in self.obj)

请注意,我不使用str作为变量名称。 你不应该这样做,因为它是Python中的内置函数。

更新:关于您的上一条评论,您可以执行以下操作:

string = ''.join('[%s%s]' % (x[1:], self.obj[x]) for x in self.obj)

或者如果您更喜欢(更多Pythonic?)format方法:

string = ''.join('[{0}{1}]'.format(x[1:], self.obj[x]) for x in self.obj)