2014-02-10 185 views
-1

這裏是我的問題格式列表轉換成字符串

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 

不是整個列表,它只是給我的列表的最後一個元素是爲什麼?? 謝謝。

+1

我不認爲上面的代碼能夠創造產出的 - 也許你可以提供一些更多的信息。例如,它是如何obs1 = mag1?是否有某種聲明聲明確立了這一點? – PyNEwbie

+2

你可以添加更多的細節?變量名稱相當混亂。最頂端的代碼不應該返回任何「平等」的任何東西,只需逐行列出列表中的每個項目。 「sforrbd = parentV = {0},format(index)」是什麼意思? 嘗試以通用的方式格式化問題,包括所有的起始變量值(obs,mag等...我看到你正在增加它們,但是從什麼?)以及你期望看到的。 – lberezy

+0

是的第三行obsforsim = obs + mag – Arnvfx

回答

0

我很難解釋你的問題,所以我只是將它作爲問題標題。

比方說,你有一個項目(它們可以是任何東西,數字,字符串,字符等)

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

清單如果你這樣做,因爲我 在myList中: 打印(I)

您將獲得:

1 
2 
3 
4 
"abcd" 

如果要將此轉換爲字符串:

myString = ' '.join(myList) 

應該有:

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

現在對於一些解釋: ' '是Python中的字符串,字符串有與之相關聯的某些方法(函數,可應用於字符串)。在這種情況下,我們調用.join()方法。此方法將列表作爲參數,並提取列表中的每個元素,將其轉換爲字符串表示形式,並基於' '作爲分隔符將其「加入」。如果你想用逗號分隔的列表表示,只需將' '替換爲','即可。

+0

非常感謝您的解釋!這真的幫了我很多:-) – Arnvfx

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 
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) 

如其他例子來創建自己的線路實測值= MAG對一個字符串。

最後,你可以用list comprehension做一行。

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

正如其他人所指出的,而循環是危險的 - 它更容易使用範圍