当前位置: 首页 > 面试题库 >

如何枚举从1开始的数字范围

司寇正志
2023-03-14
问题内容

我正在使用Python 2.5,我想要这样的枚举(从1开始而不是0):

[(1, 2000), (2, 2001), (3, 2002), (4, 2003), (5, 2004)]

我知道在python 2.6中可以执行以下操作:h =
enumerate(range(2000,2005),1)给出上述结果,但是在python2.5中您不能…

使用python2.5:

>>> h = enumerate(range(2000, 2005))
>>> [x for x in h]
[(0, 2000), (1, 2001), (2, 2002), (3, 2003), (4, 2004)]

有谁知道在python 2.5中获得理想结果的方法?

谢谢,

杰夫


问题答案:

正如您已经提到的,在Python 2.6或更高版本中,这很容易做到:

enumerate(range(2000, 2005), 1)

Python 2.5及更早版本不支持该start参数,因此您可以创建两个范围对象并将其压缩:

r = xrange(2000, 2005)
r2 = xrange(1, len(r) + 1)
h = zip(r2, r)
print h

结果:

[(1,2000),(2,2001),(3,2002),(4,2003),(5,2004)]

如果要创建生成器而不是列表,则可以使用izip。



 类似资料:
  • 问题内容: 是否可以像下面那样进行枚举 这样,当我按输入值进行搜索时,请说101。它将返回“ rich”?如何在枚举中做到这一点?能举个例子吗?我不想用forloop循环整个枚举来获取string_value。可能? 问题答案: 如其他建议的那样,将with与值一起使用。 然后,提供一种静态方法,该方法通过对所有值的有序列表/数组执行二进制搜索,而不是对枚举值执行强力迭代搜索。 要执行搜索,请从中

  • 例如,我如何做类似的事情: 结果示例:

  • 问题内容: 我试图从原始值获取枚举类型: 但是似乎对于带空格的字符串不起作用: 任何建议如何获得它? 问题答案: 太复杂了,只需将原始值直接分配给案例 如果案例名称与原始值匹配,您甚至可以忽略它 在Swift 3+中,所有枚举都是

  • 我的JPA实体作为枚举字段 哪里 如果我用规范添加where条件 将枚举包含到规范查询中的正确方法是什么?

  • 问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S

  • 问题内容: 在Java中,我有: 我希望本机方法“ nativeGetStatus”返回此枚举值。 JNI返回整数并与java中的enum的值进行比较是一个选项,但是想知道是否可以通过jobject返回值并将其直接分配给state吗?如果是,怎么办? 问题答案: 当然可以。枚举值是Enum类的公共静态字段,因此您可以使用此官方手册编写代码。只需从JNI获取字段并将其作为jobject返回即可。