3 回答

TA貢獻1875條經驗 獲得超3個贊
只需重建列表并使用切片和添加生成新字符串:
lst = ['Hello', 'what', 'is', 'your', 'name']
result = [x[1:]+x[0] if x else "" for x in lst]
結果:
['elloH', 'hatw', 'si', 'oury', 'amen']
(注意允許對空字符串健壯的三元表達式,因為空字符串的情況下 intx[0]會引發IndexError。沒有三元表達式,我們可以使用[x[1:]+x[0:1] for x in lst]which 做同樣的事情)

TA貢獻1757條經驗 獲得超8個贊
檢查以下代碼:
mylist = ['Hello', 'what', 'is', 'your', 'name']
mylist = [(mylist[i][1:] + mylist[i][0:1]) for i in range(0,len(mylist))]
print(mylist)
輸出 :
['elloH', 'hatw', 'si', 'oury', 'amen']

TA貢獻1712條經驗 獲得超3個贊
您可以使用切片和索引:
def shift(s):
return s[1:] + s[0]
data = ['Hello', 'what', 'is', 'your', 'name']
result = [shift(s) for s in data]
print(result)
輸出
['elloH', 'hatw', 'si', 'oury', 'amen']
該語句result = [shift(s) for s in data]被稱為列表理解,相當于以下內容:
result = []
for s in data:
result.append(shift(s))
最后另一種選擇是使用map:
result = list(map(shift, data))
函數 map 將移位應用于數據的每個元素,但它返回(在 Python 3 中)一個可迭代對象,因此您需要將其轉換為列表。
添加回答
舉報