Python 等价于 Haskell 的 [1..](索引列表)

标签 python list loops haskell

我有一个 python 中的元素列表。我不知道列表中的元素数量。我想在列表中添加索引。

在 Haskell 中,我可以执行以下操作

zip [1..] "abcdefghijklmnop"
[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g'),(8,'h'),(9,'i'),(10,'j'),(11,'k'),(12,'l'),(13,'m'),(14,'n'),(15,'o'),(16,'p')]

现在假设字符串的大小未知。这在 Haskell 中仍然有效,整数列表会根据需要给出尽可能多的整数,直到字符串用完。

如何用 Python 做同样的事情?

我试过这个:

s = "abcdefghijklmnop"
indexedlist = []
for i,c in enumerate(s):
    indexedlist.append((i,c))

>>> indexedlist
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j'), (10, 'k'), (11, 'l'), (12, 'm'), (13, 'n'), (14, 'o'), (15, 'p')]

它有效,但我想知道是否有更短/更清晰的方法,因为它只有 4 行代码并且感觉很多。

最佳答案

只需执行 list(enumerate(s))。这将迭代 enumerate 对象并将其转换为 list

关于Python 等价于 Haskell 的 [1..](索引列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31710499/

相关文章:

python 小数精度和 django DecimalField

.net - 在 C++ 中实现 GetEnumerator

javascript - 在ajax成功的单独页面中打印每个循环记录

python - 如何从覆盆子模拟 dualshock 3 垫的按钮按下

python - 一个简单的 Python HTTP 代理

python - 无法easy_install ssl模块

c - 循环 C 内重复出现错误

python - 将 python 列表投影到现有值上(使用生成器的生成器)

python - 如何在Python中向索引添加特定数字?

java - 将数值添加到字符串名称的最简单方法