python - 查找列表中相同元素的最长系列
问题描述
我有一个任务,我有一个列表。很多F
字母或I
字母。我必须找到最长的F
元素系列。以及它的索引。
例如,我在列表中有这些:
F,F,F,我,我,我,F,F,F,F,我
在这种情况下,我必须知道最长的系列是 4 个元素,它从第 7 位开始。我真的不知道如何解决这个任务。
我尝试过这个:
listt=["F","F","F","I","I","I","F","F","F","F","I"]
num = 0
biggest_num = 0
for i in range(len(listt)):
if list[i] == "F":
num = num + 1
else:
biggest_num = num
num = 0
解决方案
尝试groupby
:
from itertools import groupby
l = ['F', 'F', 'F', 'I', 'I', 'I', 'F', 'F', 'F', 'F', 'I']
print(max([len(list(i)) for _, i in groupby(l)]))
输出:
4
推荐阅读
- python - 如何使用 Selenium (Python) 修复上传图片到 Twitter
- android - 为什么应用程序包中的 apk 在某些设备上没有启动器图标
- javascript - 通过纯 JavaScript(AJAX) 和 PHP 删除 SQL 数据
- swiftui - SwiftUI 选择器不更新值
- python - 熊猫,搜索dataframe1列的哪些值在dataframe2的列中,在哪一行
- typescript - 我可以有多种不同的方式在 Typescript 中构造一个类吗
- jq - 使用 jq 向现有 JSON 添加一个简单的键值对
- vue.js - 找不到模块“tailwindcss”
- javascript - React Native 和 i18n-js:在翻译后的字符串中添加组件
- docker - 在 Docker Swarm 上部署 Spark 和 HDFS 不会启用数据本地化