Python实现:根据子列表元素首字符筛选删除指定子列表
解决Python列表过滤问题:移除元素首字符全相同的子列表
嘿,这个需求很清晰,咱们用简洁的方式就能搞定!
思路拆解
咱们的核心任务是筛掉所有子列表里元素首字符完全一致的项。具体逻辑很简单:
- 对每个子列表,先提取其中每个数字的首字符(把整数转成字符串后取第一个字符就行)
- 检查这些首字符是不是全一样:如果去重后的首字符集合长度不等于1,说明存在不同的首字符,这个子列表就值得保留
实现代码
Config = [[32, 31, 33, 34], [32, 42, 13, 33], [32, 42, 34, 44], [42, 42, 43, 44]] # 用列表推导式快速过滤符合条件的子列表 ConfigRevised = [sublist for sublist in Config if len(set(str(num)[0] for num in sublist)) != 1] print(ConfigRevised) # 输出结果正好是你要的:[[32, 42, 13, 33], [32, 42, 34, 44]]
代码细节解释
str(num)[0]:把每个整数转成字符串,取第一个字符(也就是数字的首位数)set(str(num)[0] for num in sublist):把当前子列表所有元素的首字符放进集合,集合会自动去重len(...) != 1:如果集合长度不等于1,说明子列表里有不同的首字符,这个子列表就会被保留到新列表中
这样处理后,就精准得到了你想要的ConfigRevised列表啦!
内容的提问来源于stack exchange,提问作者Parag Jafar Siddique
相关产品推荐
相关产品推荐

