添加元素时发生TypeError

时间:2018-09-06 14:42:31

标签: python python-3.x

我试图从命令行获取输入并将其转换为命令,然后执行那些命令,但是我在生成器中遇到typeError。 有人可以告诉我原因是什么,还有这个生成器对象是什么?

  

cmd1 =''。join('s1。'+ info +'('+ s2 +')')

     

TypeError:无法将“生成器”对象隐式转换为str

n=int(input())
    s1=set(int(x) for x in input().split())
    loop_length=int(input())
    for _ in range(loop_length):
        info,r=input().split()
        s2=(int(x) for x in input().split())
        cmd1='s1.'+str(info)+'('+s2+')'
        eval(cmd1)
    print(s1)

1 个答案:

答案 0 :(得分:2)

您有一个生成器对象,该对象将返回int。该int生成器需要转换为str。

有多种方法可以做到这一点,我不确定您到底需要什么。为了将生成器将返回的每个int转换为str,我将使用map。

str_s2 = map(str, s2)

但是,这将返回另一个生成器。

要将生成器转换为str,您需要对所需的输出有一些了解。如果您希望输出是数字的逗号分隔列表,请使用join。

str_s2 = ', '.join(map(str, s2))