2015-10-21 26 views
1

我還有一個問題,我想輸入,當然沒有直接的答案,只是指向正確的方向!切換列表中的兩個字符串的位置

我有一串數字前綴。 1234567890,我想要1 & 0更改地點(0和9)和'2345'&'6789'更改地點。最終結果'0678923451'。

我所做的第一件事是字符串轉換成一個列表:

ex. original = '1234567890' 
    original = list(original) 
    original = ['0', '1', '2' etc....] 

現在,我得到你需要拉的第一和最後出來,所以我分配

x = original[0] 

y = original[9] 

所以:x,y = y,x(它讓我得到我期待的結果)

但是,如何將其輸入原始列表?

謝謝!

+1

提示:考慮s =「12345」和「print s [1:4]」。切片操作員是你的朋友。 –

+1

你並不需要很長的時間才能將列表從字符串中刪除。你可以使用切片符號。例如,原始[:1]會給你第一個字符。搜索關於他們 – MohitC

回答

1

事實上,您從變量x和y中的列表中「拉出」數據根本沒有任何幫助,因爲這些變量與列表中的項目不再有任何關係。但是,你爲什麼不直接交換他們:

original[0], original[9] = original[9], original[0] 

可以使用切片運算符以類似的方式交換列表的內部零件。

但是,沒有必要從原始字符串創建一個列表。相反,您可以使用切片運算符來實現所需的結果。請注意,不能象列表那樣交換字符串元素,因爲在Python中字符串是不可變的。但是,您可以執行以下操作:

>>> a = "1234567890" 
>>> a[9] + a[5:9] + a[1:5] + a[0] 
'0678923451' 
>>> 
+0

謝謝!因此,在完成所有事情之後,我想:return print(''。join(original))right? –

+1

是的。但是,再次,你根本不需要這個清單。你可以做我在字符串上做的事情。 – Paul92

+0

我試着用字符串做,但是我得到一個'str'對象不支持項目分配。 –

相關問題