扭轉一個字符串是什麼'。加入(目的)這裏
爲什麼要使用join()方法的功能,而在蟒蛇
print(''.join(reversed(a)))
我們不能扭轉一個字符串僅與反向功能
print(reversed("python"))
扭轉一個字符串是什麼'。加入(目的)這裏
爲什麼要使用join()方法的功能,而在蟒蛇
print(''.join(reversed(a)))
我們不能扭轉一個字符串僅與反向功能
print(reversed("python"))
不,你不能簡單地通過調用reversed
做到這一點。 reversed
返回一個特殊的reversed
迭代器對象,它需要迭代以產生它的元素。
不提供給.join
這裏只會打印出reversed
對象的令人困惑的repr
對象:<reversed object at 0x7f2ba02be320>
。
調用"".join
,這需要一個迭代作爲參數,消耗reversed
對象並加入元素產生你看到的字符串。
注意到,還有其他的方式來使用它,而不join
導致不同的對象,list
,例如,將採取reversed
對象,並創建一個列表出來它產生的元素:
a = reversed('abcd')
print(list(a))
['d', 'c', 'b', 'a']
如果你最後需要一個字符串,那麼最好的選擇是.join
。
你可以操縱str
一樣list
:
a = 'abcd'
a[::-1] #'dcba'
的join
目的是採取迭代和分隔符加入它產生一個字符串:
''.join(reversed(a))
a
可以是迭代支持迭代協議或重載對象__getitem__
。也就是說,您通常想要在for
循環或理解中使用的任何對象,或者您想迭代以產生結果並將它們作爲字符串進行迭代,該對象可能是join
的潛在值。
reversed
返回您需要迭代的對象以便獲取其值join
中的值。所以''.join(reversed(a))
意味着以下內容:首先反向a
,然後迭代reversed
的結果對象,並按照join
指定的分隔符連接每個提取的對象,在這種情況下,它只是一個空字符串。
難道我們不能只用反轉函數來反轉字符串嗎?
不是真的!您可以使用此表達式而不是reversed
函數:'stackoverflow'[::-1]
來反轉字符串。像往常一樣,可以通過幾種方法在編程中實現相同的效果。
這不是你的具體問題的答案,但是你可以在沒有'join'和'reversed'的情況下反轉一個字符串:'revstring = mystring [:: - 1]'。 – VPfB
你有沒有打過電話的代碼? –