如何显示元组列表并计算相同数量的元素

问题描述 投票:0回答:3

输入def inisial(daftar):

daftar = (

     "Michael","Viny","Aurelio","Michael",
     "Felix","Kevin","Vincen","Vincen","Michael")

inisial(daftar)

输出:

Michael

Viny

Aurelio

Michael2

Felix

凯文

Vincen2

Vincen3

Michael3

python list tuples namedtuple
3个回答
0
投票

我假设您要计算每个名称的出现次数。如果是这样,您可以这样做。当然,如果您希望输出不同,则可以更改字典的返回格式。

def inisial(daftar):
    d = {}
    for daft in daftar:
        if daft not in d:
            d[daft] = 0
        else:
            d[daft] += 1

    return d

daftar = (

     "Michael","Viny","Aurelio","Michael",
     "Felix","Kevin","Vincen","Vincen","Michael")

inisial(daftar)

输出:

{'Michael': 2, 'Viny': 0, 'Aurelio': 0, 'Felix': 0, 'Kevin': 0, 'Vincen': 1}

0
投票

您需要计算列表中条目的频率,并在倒退列表中使用此频率。

def inisial(daftar):
    freqs = {}
    for name in daftar:
        freqs[name] = freqs.get('name', 0) + 1
    ret = []
    for name in daftar:
        freq = freqs[name]
        if freq == 1:
            ret.append(name)
        elif freq > 1:
            ret.append(name + str(freq))
    return ret

0
投票

除了@Sandertjunh的答案,您还可以使用collections.Counter

© www.soinside.com 2019 - 2024. All rights reserved.