这是我的问题
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
不是整个列表,它只给我列表中的最后一个元素为什么是那个.. ?? 感谢。
答案 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)])
正如其他人所指出的,虽然循环是危险的 - 它更容易使用范围