python中使用下标能修改列表的元素吗_python自动扩展list中元素的下标

最近一直在搞数据结构问题,怎奈自己是编程小白啊,从来没有训练过数据结构算法的知识,想要实现一个功能真的很慢,不过还好,能实现。

需求:d = ['A02','A02','A02','A01','A03','A03','A01','A02','A02','A02','A03','B020304','B020304']

上面这个list中有很多重复的元素,我需要将其重复的都扩展下标,不重复的就扩展为_1即可。

d = ['A02','A02','A02','A01','A03','A03','A01','A02','A02','A02','A03','B020304']

q=[]

[q.append("%s_%s"%(i,k)) fori inset(d) fork inrange(1,d.count(i)+1)]

print(sorted(q))

这个是一种代码方式 很简洁,结果为

['A01_1', 'A01_2', 'A02_1', 'A02_2', 'A02_3', 'A02_4', 'A02_5', 'A02_6', 'A03_1', 'A03_2', 'A03_3', 'B020304_1']

将上面代码拆开写是:

d = ['A02','A02','A02','A01','A03','A03','A01','A02','A02','A02','A03','B020304']

q=[]

fori inset(d):

fork inrange(1,d.count(i)+1):

q.append(("%s_%s"%(i,k)))

print(sorted(q))

运行结果二者一样

后续补充:

上面的例子中还需有一点需要改动,可以看到,例子中使用set来求取不重复的元素集合的,但是求取集合后并不能按照原来的顺序求取,即set求取一个list的不重复元素集合时候元素顺序会被打乱。

func = lambdax, y: x ify inx elsex + [y]

del_dieci = reduce(func, [[], ] + d)

可以用这两行代码来取代set方法,其中del_dieci = reduce(func, [[], ] + d)和set(d)二者功能都是去重,只不过前者保留去重之前的顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值