【问题标题】:How do I loop a set of strings in reverse in Python?如何在 Python 中反向循环一组字符串?
【发布时间】:2012-12-02 02:50:25
【问题描述】:

如果不使用 reversed(),我将如何在函数中循环 Python 中的一组字符串?

偶然发现了以下范围:

range() 和 xrange() 采用指定步骤的第三个参数。所以 您可以执行以下操作。

range(10, 0, -1) 给出

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 但是对于迭代,你真的应该 改用 xrange 。所以,

xrange(10, 0, -1)

但这些并不能真正与字符串对话?

【问题讨论】:

  • 集合没有内在的顺序,因此“反向”迭代集合的概念没有意义。你的意思是字符串列表吗?
  • "但是这些真的不能用字符串说话吗?"你可以试试看
  • 这个问题很模糊。你能显示一些代码吗?样本输入和期望的输出?你真的有“set of strings”还是随便用“set”?

标签: python string loops reverse


【解决方案1】:

您要查找的函数是list comprehensions。这些很有用,因为您不必遍历序列,这是 rangexrange(在 2.x 中)提供的。

str 可以被迭代和切片,就像字符串一样。唯一的区别是str 元素是不可变的。

以您的示例为例,假设您有一组字符串,并且您想遍历它们。没问题 - 请记住,集合对它们没有固有的顺序;他们只保证内容是唯一的。

myset = set(["first", "second", "third", "fourth", "fifth"])
for i in myset:
    print i

...打印:

second
fifth
fourth
third
first

您也可以使用the step parameter 对一个序列类型自行反转单个字符串,str 属于该序列类型。你可以这样做:

"this is the song that never ends"[::-1]

...打印:

'sdne reven taht gnos eht si siht'

【讨论】:

  • 诚得到了我想要的东西。是啊,我用set这个词比较随便!谢谢大家!
【解决方案2】:

试试这个:

>>> str = 'abcdefghijklmnopqrstuvwxyz'
>>> str[::-1]
'zyxwvutsrqponmlkjihgfedcba'

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2021-02-07
    • 1970-01-01
    • 2017-08-26
    • 2020-05-22
    • 2021-07-21
    • 2020-09-26
    • 2015-12-09
    • 1970-01-01
    相关资源
    最近更新 更多