格式化列表转换为字符串

时间:2014-02-10 22:41:13

标签: python string list maya

这是我的问题

count += 1
num = 0
num = num + 1
obs = obs_%d%(count)
mag = mag_%d%(count)
while num < 4:
   obsforsim = obs + mag
mylist.append(obsforsim)
for index in mylist:
    print index 

以上代码给出了以下结果

obs1 = mag1
obs2 = mag2
obs3 = mag3

等等。

obsforrbd = parentV = {0},format(index)
cmds.dynExpression(nPartilce1,s = obsforrbd,c = 1)

然而,当我运行上面的代码时,它只给了我

parentV = obs3 = mag3

不是整个列表,它只给我列表中的最后一个元素为什么是那个.. ?? 感谢。

3 个答案:

答案 0 :(得分:0)

我在解释您的问题时遇到了困难,所以我只是将其基于问题标题。

让我们说你有一个项目列表(它们可以是任何东西,数字,字符串,字符等)

myList = [1,2,3,4,"abcd"]

如果您执行以下操作:     for my in myList:         打印(ⅰ)

你会得到:

1
2
3
4
"abcd"

如果要将其转换为字符串:

myString = ' '.join(myList)

应该有:

print(myString)
>"1 2 3 4 abcd"

现在有一些解释: ' '是python中的字符串,字符串具有与之关联的某些方法(可应用于字符串的函数)。在这种情况下,我们会调用.join()方法。此方法将列表作为参数,并提取列表中的每个元素,将其转换为字符串表示形式,然后加入&#39;它基于' '作为分隔符。如果您想要以逗号分隔的列表表示,只需将' '替换为','

答案 1 :(得分:0)

我觉得你的缩进错了......应该是

while num < 4:
   obsforsim = obs + mag
   mylist.append(obsforsim)
for index in mylist:

但我不确定那是不是你的问题

以前没有用的原因是

while num < 4:
   obsforsim = obs + mag
#does all loops before here
mylist.append(obsforsim) #appends only last

答案 2 :(得分:0)

吐出编号项目列表的通常pythonic方法是范围函数:

results = []
for item in range(1, 4):
    results.append("obs%i = mag_%i" % (item, item))

> ['obs1 = mag_1', 'obs2 = mag_2', 'ob3= mag_3'] 

依此类推(请注意,在此示例中,您必须传递item变量两次以使其注册两次。

如果要将其格式化为表达式,则可以使用

'\n'.join(results) 

就像在另一个例子中一样,在他们自己的行上创建一个带有obs = mag对的单个字符串。

最后,您可以使用list comprehension在一行中完成所有操作。

'\n'.join([ "obs%i = mag_%i" % (item, item) for item in range (1, 4)])

正如其他人所指出的,虽然循环是危险的 - 它更容易使用范围