![](/img/trans.png)
[英]How do I reverse items from a list and store it as a string in python
[英]Python: How do I reverse every other string in a list?
我想反转列表中的所有其他单词。 我的清单是 -
['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
我如何颠倒所有其他单词,所以 output 应该是。
['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', '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']
range(1, len(s), 2)
从 position 1开始,按二进制计数。
[::-1]
反转字符串。
我觉得发布的许多解决方案都非常聪明,但对于初学者来说可能有点太容易理解了。 该解决方案并不简单,只需一步即可达到效果。
>>> x = ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
>>> [v[::1-(i%2)*2] for i, v in enumerate(x)]
['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', 'iwiK', 'Avacado', 'nomeL', 'Lime', 'yenoM']
您可以通过编写word[::-1]
来反转字符串word
,因此任务只是将其应用于所有其他元素。 这可以通过列表理解来解决,使用enumerate
并检查索引是奇数还是偶数。
>>> words = ['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon',
'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
>>> [ (word if i%2 == 0 else word[::-1]) for i, word in enumerate(words) ]
['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'
在一行中:
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
>>> v=['Bananas', 'Apples', 'Fruits', 'Chocolate', 'Watermelon', 'Kiwi', 'Avacado', 'Lemon', 'Lime', 'Money']
>>> map( lambda (i,x): x[::-1] if i % 2 == 1 else x , enumerate(v))
['Bananas', 'selppA', 'Fruits', 'etalocohC', 'Watermelon', 'iwiK', 'Avacado', 'nomeL', 'Lime', 'yenoM']
Python 3
list(map( lambda x: x[1][::-1] if x[0] % 2 == 1 else x[1], enumerate(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']
您可以像这样通过 2 遍历您的列表
for word in my_words[::2]:
print(reversed(word))
这将逐步遍历您的数组,但 2 并将反向打印单词。 您还可以使用word[::-1]
反转单词
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.