我有一个列表:
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, b
和a,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]']]