要转换为字符串的格式列表



这是我的问题

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

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

我很难解释你的问题,所以我只是基于问题标题

假设您有一个项目列表(它们可以是任何东西,数字,字符串,字符等)

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

如果您执行以下操作: 对于 i 在 myList 中: 打印(I)

您将获得:

1
2
3
4
"abcd"

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

myString = ' '.join(myList)

应该有:

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

现在做一些解释: ' '是 python 中的字符串,字符串具有与之关联的某些方法(可以应用于字符串的函数)。在本例中,我们调用 .join() 方法。此方法将列表作为参数,并提取列表的每个元素,将其转换为字符串表示形式,并根据' '作为分隔符"联接"它。如果您想要逗号分隔的列表表示形式,只需将' '替换为 ',' 即可。

我认为你的缩进是错误的......它应该是

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

出编号项列表的常用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 对位于它们自己的行上。

最后,您可以使用列表理解在一行中完成所有这些操作。

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

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