gpt4 book ai didi

python - 替换 Python 列表中的重复字符串

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:48 25 4
gpt4 key购买 nike

我有一个 Python 列表,其中只有一个元素重复了三次。我想用独特的元素替换它们。

my_list = [,...,'future_use',...,'future_use',..'future_use',...]

预期成绩:

[,...,'future_use1',...,'future_use2',..'future_use3',...]

我尝试使用列表理解:

count = my_list.count("future_use")
for i in range(1, count+1):
my_list = [item.replace("future_use","future_use%r" %i,i) for item in my_list]

但是,我没有得到想要的输出。有人能告诉我正确的步骤吗?

最佳答案

您可以使用集合中的 Counterdefaultdict 以及 itertools 中的 count 来缩短它;是否更清晰取决于你用 Python 花了多少时间。不过,像这样的模式被广泛使用,值得熟悉......

(此处为 python 3.6 风格,使用 f 字符串)

from collections import Counter, defaultdict
import itertools

seq = ["a", "future_use", "b", "b", "future_use", "c", "future_use"]

counts = Counter(seq)
suffix_counter = defaultdict(lambda: itertools.count(1))
seq2 = [elem if counts[elem] == 1 else elem + f'_{next(suffix_counter[elem])}'
for elem in seq]

给我

>>> seq2
['a', 'future_use_1', 'b_1', 'b_2', 'future_use_2', 'c', 'future_use_3']

关于python - 替换 Python 列表中的重复字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47015416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com