python - 实例列表理解

标签 python list instance

我正在尝试列表理解,但遇到了以下问题。

class Programmer():
    def __init__(self, name, years_at_umich=1, programs_written=0):
        self.name = name
        self.seniority = years_at_umich
        self.bonus_points = random.randrange(1000)
        self.programs_written = programs_written

    def shout(self, phrase_to_shout):
        print phrase_to_shout  # print is for ppl!

    def __str__(self):
        return "My name is {}, and I've been at UMich for about {} years.".format(self.name,self.seniority)

    def year_at_umich(self):
        return self.seniority

prog_tups = zip(names, seniority,programs_written)
print prog_tups

打印输出

[('Albert', 1, 10), ('Bisi', 5, 500), ('Cai', 2, 20), ('Dinesh', 4, 131), ('Euijin', 1, 46)]

我正在尝试使用列表理解从上面的 prog_tups 列表中创建 Programmer 实例列表,并将该列表保存在变量程序员中。

我当前的代码如下,我没有得到回溯,但什么也没有发生:

programmers = [item for item in prog_tups]

最佳答案

如果您还没有自定义 Programmer 类,请考虑使用 collections.namedtuple子类:

import collections

Programmer = collections.namedtuple('Programmer', 'name seniority programs_written')
prog_tups = [('Albert', 1, 10), ('Bisi', 5, 500), ('Cai', 2, 20), ('Dinesh', 4, 131), ('Euijin', 1, 46)]
programmers = [Programmer(n, s, p) for n,s,p in prog_tups]

# the first programmer
print programmers[0]

输出:

Programmer(name='Albert', seniority=1, programs_written=10)

要处理现有的自定义类,请使用以下方法:

prog_tups = [('Albert', 1, 10), ('Bisi', 5, 500), ('Cai', 2, 20), ('Dinesh', 4, 131), ('Euijin', 1, 46)]
programmers = [Programmer(*t) for t in prog_tups]

# the first programmer
print programmers[0]

输出:

My name is Albert, and I've been at UMich for about 1 years.

关于python - 实例列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173049/

相关文章:

android - 在 Android 上使用 ListView 和 TabHost 进行布局

excel - 如何查找其他 Excel 实例并将它们分配给 Excel.Application 变量

dynamic - 实例上的 Groovy Mixin(动态 Mixin)

python - 从多类分类的混淆矩阵计算真阳性值

python - 如何在Python中忽略或传递xpath xml IndexError

python - 一个 Django 项目 - 根据域呈现不同的内容

c# - 如何根据 Dictionary int 值订购 Dictionary<int, string> 列表?

python - 如果第一个元素和另一个元素相同,则将元组列表切片为列表列表

python - MySQL python DBAPI。如何获取字典而不是元组?

jquery - 是什么让 jQuery 对象在 Chrome 开发工具中显示为数组?