同时将python列表与索引和项目一起打印

时间:2018-09-08 09:01:01

标签: python python-3.x

我确实了解如何将字母放入以逗号分隔的列表中:

例如

a = 'hello'

print(list(a))

如何在下面实现这样的输出?

['h':0, 'e':1, 'l':2, 'l':3, 'o':4]

3 个答案:

答案 0 :(得分:1)

由于您的输出既不是列表也不是字典,因此您必须自己使用enumerate来格式化生成器表达式的输出:

from pprint import pformat
print('[%s]' % ', '.join('%s:%d' % (pformat(n), i) for i, n in enumerate(a)))

这将输出:

['h':0, 'e':1, 'l':2, 'l':3, 'o':4]

答案 1 :(得分:1)

outa = [(i,w) for w,i in enumerate(a)]
print(outa)
outa = dict() # gives you [("h",0),("e",1),("l",2),("l",3),("o",4)]
for w,i in enumerate(a):
    outa[w] = i
print(outa) # gives you {0:"h",1:"e",2:"l",3:"l",4:"o"}

因为您像字典一样写它,所以我假设您希望它们以某种方式链接或词典不能具有双重键,因此我将其设为一个元组,但是,如果键成为索引和键,词典就可以工作重视这封信。

答案 2 :(得分:1)

使用enumerate

您的列表看起来像字典,会使操作起来更加困难。

即将关闭

>>> a = 'hello'
>>> [f'{x}: {i}' for i, x in enumerate(a)]
['h: 0', 'e: 1', 'l: 2', 'l: 3', 'o: 4']

但是

组织列表的一种更好的方法是按照以下步骤创建元组列表:

>>> [(x, i) for i, x in enumerate(a)]
[('h', 0), ('e', 1), ('l', 2), ('l', 3), ('o', 4)]

现在,您可以轻松地对列表进行迭代并执行操作。