Python:如何反转列表中的其他字符串?
我想把列表中的每一个单词都倒过来。我的名单如下:Python:如何反转列表中的其他字符串?,python,python-3.x,Python,Python 3.x,我想把列表中的每一个单词都倒过来。我的名单如下: ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money'] 如何将其他单词反转,以便输出正确 ['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', 'iwiK', 'Avacado', 'nomeL', 'Lime', 'yenoM']
['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
如何将其他单词反转,以便输出正确
['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', 'iwiK', 'Avacado', 'nomeL', 'Lime', 'yenoM']
第一个字母不一定是大的,我就是这样写的。
非常感谢您可以像这样重复2遍您的列表
我的单词中的单词[::2]:
打印(反转(word))
这将步进你的数组,但是2,并将以相反的方式打印单词。您还可以使用
word[::-1]
来反转单词。您可以通过写入word[:-1]
来反转字符串word
,因此任务只是将此应用于其他每个元素。这可以通过列表理解来解决,使用enumerate
并检查索引是奇数还是偶数
>words=[“香蕉”、“苹果”、“水果”、“巧克力”、“西瓜”,
‘猕猴桃’、‘Avacado’、‘柠檬’、‘酸橙’、‘金钱’]
>>>[(单词if i%2==0其他单词[:-1])对于i,枚举中的单词(单词)]
[‘香蕉’、‘塞尔帕’、‘水果’、‘艾塔洛可可’、‘西瓜’、‘iwiK’,
‘Avacado’、‘nomeL’、‘Lime’、‘yenoM’]
这里有一个简单的方法:
>>> s = ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
>>> for i in range(1, len(s), 2):
s[i] = s[i][::-1]
>>> s
['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', 'iwiK', 'Avacado', 'nomeL', 'Lime', 'yenoM']
范围(1,len(s),2)
从位置1开始,按2计数
[::-1]
反转字符串。在一行中:
list1 = ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
[x[::-1] if i % 2 != 0 else x for i, x in enumerate(list1)]
['Bananas',
'selppA',
'Fruits',
'etalocohC',
'Watermelon',
'iwiK',
'Avacado',
'nomeL',
'Lime',
'yenoM']
您可以使用map进行迭代和枚举以获取索引。检查索引是否为奇数,然后使用[:-1]反转 Python 2 Python 3
列表(映射(lambda x:x[1][:-1]如果x[0]%2==1,否则x[1],枚举(v))
上面将给出一个新的列表。
如果您希望修改相同的列表,则
>>> v=['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
>>> for i,x in enumerate(v):
... if i %2 == 1:
... v[i]=v[i][::-1]
>>> v
['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', 'iwiK', 'Avacado', 'nomeL', 'Lime', 'yenoM']
我觉得贴出的许多解决方案都很聪明,但对初学者来说可能有点难以理解。此解决方案非常简单,并使用简单的步骤来实现结果
words = ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
for index in range(0,len(words)):
if index%2 != 0: #find every other 'index'
words[index] = words[index][::-1] #reverse word at every other 'index'
我觉得贴出的许多解决方案都很聪明,但对初学者来说可能有点太容易理解了。此解决方案并不简单,只需一步即可实现结果
words = ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
for index in range(0,len(words)):
if index%2 != 0: #find every other 'index'
words[index] = words[index][::-1] #reverse word at every other 'index'
>>x=['香蕉'、'苹果'、'水果'、'巧克力'、'西瓜'、'猕猴桃'、'鳄梨'、'柠檬'、'酸橙'、'金钱']
>>>[v[::1-(i%2)*2]表示枚举(x)中的i,v]
[‘香蕉’、‘塞尔帕’、‘水果’、‘乙酰氯’、‘西瓜’、‘iwiK’、‘Avacado’、‘nomeL’、‘酸橙’、‘yenoM’]
问题是在列表中反转它们,而不是打印它们。这实际上也不会打印反转的单词,因为reversed
不会返回字符串;它会打印类似于
的内容。。很公平。我的错。这是家庭作业问题吗?如果是这样的话,我们应该只给出提示而不是解决方案。提示是:1)使用[::-1]
反转单个字符串,2)使用范围(开始、停止、步进)
循环特定标记。我同意,OP也没有发布任何他们尝试过的内容。@PyWalker2797我实际上尝试了很多东西,我浪费了很多时间试图修复错误,我只是想得到一些帮助,当然也要从答案中学习。我非常喜欢Raymond Hettinger的回答我从中学到了很多关于name错误:name'word'没有定义
这个问题被标记为Python-3.x,所以你应该使用list(map(…)
将结果变成一个列表。我很欣赏其中的幽默。很高兴我能带来一个微笑@PyWalker2797=)