亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數字添加到列表中的重復字符串

將數字添加到列表中的重復字符串

千萬里不及你 2023-05-23 15:29:30
嗨,我有一個值列表ls = ["a", "a", "b", "b", "b", "b",  "c"]如果我正確使用了該術語,我希望在重復項中添加一個枚舉編號?;旧衔蚁虢Y束這個:ls = ["a", "2a", "b", "2b", "3b", "4b",  "c"]或這個ls = ["1a", "2a", "1b", "2b", "3b", "4b",  "1c"]我只希望列表中的每個元素都是唯一的
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

這可能不是最有效的方法。


ls = ["a", "a", "b", "b", "b", "b",  "c"]


UniqueValues = set(ls)


for x in UniqueValues:

    number = 0

    for i in range(0,len(ls)):

        if ls[i] == x:

            number += 1

            if number >= 2:

                ls[i] += str(number)

但我們得到你要找的東西


print(ls)

['a', 'a2', 'b', 'b2', 'b3', 'b4', 'c']


查看完整回答
反對 回復 2023-05-23
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

你可以使用Counter和unique方法。


from numpy import unique

from collections import Counter


ls = ["a", "a", "b", "b", "b", "b",  "c"]


dup = dict(Counter(ls))

l_uniq = unique(ls)

print([key if i == 0 else key + str(i+1) for key in l_uniq for i in range(dup[key])])

出去:


['a', 'a2', 'b', 'b2', 'b3', 'b4', 'c']


查看完整回答
反對 回復 2023-05-23
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

所以我們每次都需要檢查完整列表,以便如果存在相同的值,我們可以更改指向值。


ls = ["a", "a", "b", "b", "b", "b",  "c",'a','a']


for index,value in enumerate(ls):


  if value in ls[index+1:]:


    for new in range(0,200000000):

      if not  f'{value}{new}' in ls:

        ls[index] = f'{value}{new}'

        break


print(ls)

輸出:


['a0', 'a1', 'b0', 'b1', 'b2', 'b', 'c', 'a2', 'a']


查看完整回答
反對 回復 2023-05-23
  • 3 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號