【发布时间】:2023-03-13 08:54:01
【问题描述】:
所以我有一个类似这样的列表:
list=[10.0, 10.0, 10.0, 9.9, 9.9, 9.9, 10.0, 9.9, 10.0, 10.0, 10.0, 10.0, 9.9, 9.9, 9.9, 9.9, 9.9, 9.9, 10.0, 10.0, 10.0, 10.2, 10.0, 9.9, 9.9, 9.9, 9.9, 10.0, 10.2, 10.0, 9.9, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.1, 10.0, 10.0, 10.0, 10.0, 10.0, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.2, 10.2, 10.2, 10.2, 10.2, 10.2, 10.2, 10.2, 10.2, 10.3, 10.3, 10.2, 10.2, 10.3, 10.3, 10.2, 10.2, 10.2, 10.2, 10.2, 10.2, 10.3, 10.2, 10.5, 10.9, 10.5, 10.3, 10.3, 10.3, 10.2, 10.2, 10.2, 10.2, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.4, 10.7, 10.3, 10.2, 10.1, 10.1, 10.0, 10.0, 10.0, 10.0, 10.0, 9.9, 9.9, 9.9, 10.0, 9.9, 9.9, 9.9, 10.1, 9.9, 9.9, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.7, 9.8, 9.8, 9.7, 9.7, 9.7, 9.7, 9.7, 9.7, 9.6, 9.7]
然后我也有一个看起来像这样的子列表:
sublist=[9.9, 9.9, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8, 9.8]
现在我需要处理这个较小的列表,我必须找到它在主列表中的位置。 所以在这种情况下,结果应该是这样的:index=119(我可能会选择 +/-1)
我整天都在尝试这样做...并没有在网上找到任何东西... 我有几个想法:
1) 我在列表中找到子列表的第一项......在这种情况下是 4,所以我检查下一个同样正确的数字,然后检查下一个错误的数字,它会发送它在剩余的列表中找到另一个 9.9[4:] 并再次执行相同的循环...直到找到完全匹配
2) 然后另一个想法是以某种方式使用字符串 str(list)[1:-1].find(str(sublist)[1:-1]),在这种情况下会给出 687 的答案...
这些想法的问题是它们似乎冗长而草率,而且我无法使这些想法发挥作用......
【问题讨论】:
标签: python list indexing find nested-lists