Python3如何删除二维列表中首元素为'a'的子列表及生成模式列表
Python二维列表操作问题解答
1. 删除所有首元素为'a'的子列表
优先使用列表推导式实现,语法简洁执行效率高,会直接生成符合要求的新列表:
test = [item for item in test if item[0] != 'a']
如果业务要求必须修改原列表而非生成新列表,需要倒序遍历避免删除元素后索引错位导致的漏判问题:
# 从列表尾部向前遍历 for index in range(len(test)-1, -1, -1): if test[index][0] == 'a': del test[index]
2. 同模式二维列表快速生成
你给出的示例属于「首元素为指定字符序列、第二个元素为指定数字序列」的规律二维列表,可以直接用嵌套循环的列表推导式一键生成:
test = [[char, num] for char in ['a', 'b', 'c', 'd'] for num in range(1, 5)]
如果需要使用连续的小写/大写字母作为首元素,可以调用string内置模块简化写法:
import string # ascii_lowercase[:4] 对应前4位小写字母a、b、c、d,修改切片参数即可调整字符范围 test = [[char, num] for char in string.ascii_lowercase[:4] for num in range(1, 5)]
内容的提问来源于stack exchange,提问作者SatishWagh
相关产品推荐
相关产品推荐

