Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何显示元组列表并计算相同数量的元素_Python_List_Tuples_Namedtuple - Fatal编程技术网

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

Python 如何显示元组列表并计算相同数量的元素,python,list,tuples,namedtuple,Python,List,Tuples,Namedtuple,输入 def inisial(daftar): 输出: 迈克尔 维尼 奥雷里奥 Michael2 费利克斯 凯文 文森2 文森3 Michael3我假设您要计算每个名称的出现次数。如果是这样,你可以这样做。如果希望输出不同,当然可以更改字典的返回格式 def inisial(daftar): d = {} for daft in daftar: if daft not in d: d[daft] = 0 else:

输入 def inisial(daftar):

输出:

迈克尔

维尼

奥雷里奥

Michael2

费利克斯

凯文

文森2

文森3


Michael3

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

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}

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

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

除了@Sandertjunh的答案之外,您还可以使用。

您可以使用以下代码解决问题

daftar = ("Michael", "Viny", "Aurelio", "Michael",
          "Felix", "Kevin", "Vincen", "Vincen", "Michael")

temp_dict = {}
for name in daftar:
    if temp_dict.get(name):
        temp_dict[name] += 1
    else:
        temp_dict[name] = 1

    if temp_dict[name] > 1:
        print('%s%d' % (name, temp_dict[name]))
    else:
        print(name)


我试图制作这个节目,但失败了。你的问题太模糊了。输入应该是什么,输出应该是什么?请给出一个确切的例子。输出是元组中的名称,如果名称大于1,则输出将输出示例vincen 1、vincen 2
daftar = ("Michael", "Viny", "Aurelio", "Michael",
          "Felix", "Kevin", "Vincen", "Vincen", "Michael")

temp_dict = {}
for name in daftar:
    if temp_dict.get(name):
        temp_dict[name] += 1
    else:
        temp_dict[name] = 1

    if temp_dict[name] > 1:
        print('%s%d' % (name, temp_dict[name]))
    else:
        print(name)