如何使用python将列表值替换为索引引用



我有一个列表:

U = ["a", "b", "c", "d", "e"]

在下面代码的帮助下,我得到了下面作为的输出

S = []        
for i in range(0, 5):
S.append(input("Source:- "))
print((S[i]))

输出:

S[0] = a 
S[1] = a,b 
S[2] = d,e
...

现在我需要替换S[]&应该只获得索引参考,如下所示:

S[0] =[ U[0] ] 
S[1] =[ U[0] , U[1] ]
S[2] =[ U[3] , U[4] ]

如何执行此操作,请提供任何线索。

假设根据用户输入构建S后,它看起来像-

['a', 'a,b', 'd,e', ....]

你希望它看起来像

[[0], [0, 1], [3, 4]]

(U中所述字符的索引(

你可以-

for i, elem in enumerate(S):
S[i] = [U.index(c) for c in S[i].split(',')]

或者如果你喜欢蟒蛇的方式-

P = [[U.index(c) for c in elem.split(',')] for elem in S]
# This will store the result in `P`

输出

[[0], [0, 1], [3, 4]]

注意:这显然取决于用户输入,但如果您想允许像a, ba,b这样的用户输入,只需使用S[i].split(',').strip(),而不仅仅是S[i].split(',')

编辑:似乎OP希望输出为-

`['U[0]', ['U[0]', 'U[1]'], ['U[3]', 'U[4]']]`

我不确定这有什么意义,但不管怎样,

P = [[f'U[{U.index(c)}]' for c in elem.split(',')] for elem in S]

输出

[['U[0]'], ['U[0]', 'U[1]'], ['U[3]', 'U[4]']]

最新更新