python如何替换list中tuple子对象中符合某些条件的元素

import random

#1、需求,需要将listb中满足等于lista的元素都替换为某个18位的随机整型,并且必须保证listb相同的变量替换为相同的随机值

初始列表如下:

lista=['aaaa1','aaaa2','aaaa3','aaaa5','aaaa11']

listb=[('aaaa1',12,23,34,35,46,74,48),
       ('aaaa2',22,23,'aaaa1',25,26,27,28),
       ('aaaa3',32,33,34,353,36,37,38),
       ('aaaa5',52,3,54,55,6,57,48),
       ('aaaa11',2343,344,4,54,'aaaa1',7,8)]

#-------------------------------------------#

# 先将listb的子元素有tuple类型转为list类型(因为tuple本身不支持直接修改数据)
listc=[list(listb[i]) for i in range(0,len(listb))]
print("listc-old ",listc)
for i in range (0,len(lista)):
    num = random.randint(777777777777777777, 888888888888888888)
    for j in range(0,len(listc)):
        for k in range(0, len(listc[j])):
            if listc[j][k]==lista[i]:
                listc[j][k]=num
#print("listc-temp",listc)
#下面将listc中子元素中的变量替换成功了随机值后,再讲子元素转回tuple类型,大功告成
listc=[tuple(listc[i]) for i in range(0,len(listc))]

#print("listc-new ",listc)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值