python-二维嵌套列表的元素删除、更改大小写

说明:

列表在循环过程中不可删除元素,否则会使元素位置错乱,超出索引

这里采用从后向前删除元素的方法,可避免位置错乱

举个例子:
1.将列表a的所有大写字母改为小写
2.删除所有数字

a = [[1,2,3],['a','b','c'],[4,5,6],['e','f','G'],[7,8,9]]
[['A', 'B', 'C'], ['E', 'F', 'g']]

代码如下:

a = [[1,2,3],['a','b','c'],[4,5,6],['e','f','G'],[7,8,9]]
b = []  # 记录零元素x位置坐标
c = []  # 记录零元素y位置坐标
# 列表在循环过程中不可删除元素,否则会使元素位置错乱,超出索引
# 先更改大小写字母,将所有数字改为0,方便后续处理

for each1 in range(0,len(a)):
    for each2 in range(0,len(a[each1])):
        if 65 <= ord(str(a[each1][each2])) <= 90:
            #改为大写
            a[each1][each2] = chr(ord(str(a[each1][each2]))+32)
        elif 97 <= ord(str(a[each1][each2])) <= 122:
            # 改为小写
            a[each1][each2] = chr(ord(str(a[each1][each2]))-32)
        else:
            b.append(each1)
            c.append(each2)
# 删掉所有0元素
# 将记录好的位置坐标倒叙排列
# 从后向前遍历列表a,从后向前删除元素,避免位置错乱
b.reverse()
c.reverse()
for each in range(len(b)):
        del a[b[each]][c[each]]
        
# 删掉所有空的子列表
# 相同原理,从后向前删除
d = []
for each in range(len(a)):
    if len(a[each]) == 0:
        d.append(each)

d.reverse()
for each in d:
        del a[each]
print(a)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值