我有一个 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/