python 总是得到奇怪的返回值,本应是字符串,为什么成了迭代器

 class Solution:
    def optimalDivision(self, nums):
        """
        :type nums: List[int]
        :rtype: str
        """
        _len=len(nums)
        nums=[str(nums[i] for i in range(_len))]
        if _len<=2:
            return '/'.join(nums)
        else:
            return '{}/({})'.format(nums[0],'/'.join(nums[1:]))

以上代码运行以后,return 的结果是一个迭代器
. at 0x7fd1b0227468>/()
为什么?

nums被你赋值成一个迭代器了,str()的右括号有问题

class Solution:
    def optimalDivision(self, nums):
        """
        :type nums: List[int]
        :rtype: str
        """
        _len=len(nums)
        nums=[str(nums[i]) for i in range(_len)]
        if _len<=2:
            return '/'.join(nums)
        else:
            return '{}/({})'.format(nums[0],'/'.join(nums[1:]))