将列表变量存储为字符串并将其存储为变量

时间:2010-01-08 12:33:57

标签: python

我正在尝试将列表项输入字符串。然后我想将字符串存储为变量并将其打印在另一个函数中。我到目前为止的代码是:

def b(): 

    ID = [0, 1, 2]
    ID2 = 'ID={0}.{1}.{2}'.format(*ID) 
    return ID2 

if __name__ == '__main__': ID2 = b() 


def c(ID2): 
    print ID2 

if __name__ == '__main__': myObject = c(ID2) 

我得到的输出是:

[0, 1, 2] 

任何帮助将不胜感激。感谢

我正在返回列表以及ID2。这导致了这个问题。对此抱歉。

代码现在正在运行。感谢

4 个答案:

答案 0 :(得分:3)

这个怎么样:

>>> ''.join([str(x) for x in [1, 2, 3]])
'123'

答案 1 :(得分:2)

如果你想将[0,1,2]更改为“0.1.2”(就像你之前的问题中的版本字符串一样),你可以这样做。

>>> '.'.join(map(str,[0, 1, 2]))
'0.1.2'

答案 2 :(得分:2)

  1. 您可能没有与函数参数名称匹配的全局变量名称。这是合法的,但非常非常令人困惑。和调试的噩梦。

  2. 您可能不应该使用ALL UPPERCASE VARIABLE NAMES。这看起来很奇怪,使得经验丰富的Python程序员难以阅读您的代码。

  3. 您可能没有多个if __name__ == "__main__"部分。这是非常非常混乱和调试的噩梦。

  4. 我怀疑这些“化妆品”问题使得很难弄清楚你的计划究竟出了什么问题。

    def b(): 
        id = [0, 1, 2]
        aString = 'ID={0}.{1}.{2}'.format(*id) 
        return aString 
    
    def c(id2): 
        print id2 
    
    if __name__ == '__main__': 
        someString = b() 
        myObject = c(someString) 
    

    您可能会发现这更容易调试。

    我的输出。

    ID=0.1.2
    

    顺便说一句。您的函数c始终返回None。所以myObject = c(someString)没有多大意义。

答案 3 :(得分:1)

def b():
    ID = [0, 1, 2]
    ID2 = ('ID=%d.%d.%d' % tuple(ID))
    return ID2

if __name__ == '__main__': ID2 = b()

def c(ID2):
    print ID2

if __name__ == '__main__': myObject = c(ID2)

对我有用,没有python3方便,所以不能尝试使用.format() - 语法。

然而myObject = c(ID2)没有意义,函数c()不会返回任何内容