首页 > 解决方案 > 如何使用 inex 按元组列表分组

问题描述

所以这是我的问题,原句是s='this is awesome',如果我用ASCII翻译的话,

s='this is awesome'
s1= s.split(' ')
q=[]
p=[]
for i in s1:
    for j,m in enumerate(i):
        m=ord(m)
        q.append(m)
        p.append(j)

    final =zip(p,q)
f=list(final)

然后我得到一个元组列表

[(0, 116),
 (1, 104),
 (2, 105),
 (3, 115),
 (0, 105),
 (1, 115),
 (0, 97),
 (1, 119),
 (2, 101),
 (3, 115),
 (4, 111),
 (5, 109),
 (6, 101)]

然而,我真正想看到的是

this ==> change to ==>[116,104,105,115]
is==>change to ==>[105,115]
awesome==> change to ==>[97,119,101,115,111,109,101]

但我真的需要在这里有索引,因为稍后我需要有索引 + ASCII 数字才能使它成为一个新列表。任何人都可以帮忙吗?谢谢!

标签: pythonpython-3.x

解决方案


使用字典理解

前任。

s='this is awesome'

data = {x:idx for idx,x in enumerate(s.split())}
output = {k:[ord(el) for idx, el in enumerate(k)] for k,v in data.items()}
print(output)

输出/输出:

{'this': [116, 104, 105, 115], 'is': [105, 115], 'awesome': [97, 119, 101, 

115, 111, 109, 101]}

推荐阅读