检查int/str是否在列表及其位置中。Python 3.3.2版

2024-04-24 05:14:40 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个类似以下的列表:

MyList = [1,2,3,4,5,"z","x","c","v","b"]

现在用户输入:“5z1b3”。如何用列表中的位置替换每个int/str。我想用这样的方法:

for x in MyList.... if located in list, replace with letter/number with its location.

但不完全确定怎么做。我们将非常感谢您的帮助。你知道吗

编辑××××::::这是我正在研究的东西,我必须在列表中同时使用int和str。我还谎报了我需要的产量。谢谢你提到这件事。输出中每个字母/数字之间的逗号将使其适合我。你知道怎么做吗?你知道吗


Tags: 方法用户innumber列表forifwith
2条回答

我会继续使用列表.索引()方法。举例如下:

MyList = [MyList.index(chr) for chr in user_input]

编辑: 但是,这假设用户输入的每个字符都会在MyList中找到,并且MyList中的每个字符只出现一次。你知道吗

使用列表理解:

[MyList.index(c) for c in inputstring]

这将需要扫描每个条目的MyList;您可以通过使用从字符到位置的字典索引来优化这一点;这有一个额外的优势,我们可以确保我们也只有字符串:

index = {str(c): i for i, c in enumerate(MyList)}
[index[c] for c in inputstring]

如果需要格式化的字符串,请将索引转换为字符串并连接最终输出:

index = {str(c): str(i) for i, c in enumerate(MyList)}
','.join([index[c] for c in inputstring])

相关问题 更多 >