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 中)一个可迭代对象,因此您需要将其转换为列表。
添加回答
举报