python - python3 - for/while 循环遍历列表
问题描述
是否有另一种方法来实现以下想法:
我正在尝试使用 for 循环形成子列表(仅限数字)。我想遍历给定的列表,像往常一样从第一个元素开始,直到出现一个字母。如果出现某种字符(或字母),则 for 循环应准确停止在该位置,返回到目前为止形成的列表并继续工作。最后,主列表应该包含所有形成的子列表并返回它们。
我尝试使用 while 循环,因为这种循环应该跳过列表的所有元素并同时检查每个元素是否为整数。但不幸的是,我的实施没有奏效。顺便说一句,我宁愿一个不使用 itertool (groupby) 的实现。
感谢您的帮助!
a_list = [1, 1, 'z', 1, 'x', 1, 1, 'c', 1, 1, 1, 'v', 1]
main_list = []
small_list = []
for i in a_list:
if isinstance(i, int):
small_list.append(i)
else:
main_list += [small_list]
small_list = []
main_list += [small_list]
print("main_list: ", main_list)
# [[1, 1], [1], [1,1], [1,1,1], [1]]
final_list = []
for i in main_list:
item_length = len(i)
final_list += [item_length]
print("final list is: ", final_list)
解决方案
如果您的数组中的所有项目都是单个字符而不是类似12
or的东西AB
,您可以将join
所有项目合并为一个string
'11z1x11c111v1'
,然后使用 Python字符串方法,可能是.find()
:
推荐阅读
- python - 使 Jupyter Notebook 可点击
- python - Python 3 continue 循环语句在 Odoo 13 中的计算方法中是否存在问题?
- pandas - 如何使用 sklearn 中的一个热编码器转换分类列
- python - Python 真正的全局变量(python 3.7.0)
- wordpress - ACF wordpres: Foreach: data-type = 'group'
- reactjs - 使用 nextjs 的路由和链接问题
- oracle - 没有为捕获的表 ORCLLCDB.ROOT.TEST 注册元数据
- notepad++ - 如何仅在第一个字母之前删除空格
- tabulator - 制表符默认排序数据
- excel - 带有 Word 书签的 HYPERLINK 公式