Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何反转列表中的其他字符串?_Python_Python 3.x - Fatal编程技术网

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=)