【发布时间】:2021-11-07 21:07:19
【问题描述】:
我有一个这样声明的类:
class StringHolder(object):
str_a = None
str_b = None
def __init__(self, str_a, str_b):
self.str_a = str_a
self.str_b = str_b
我将所有对象都保存在一个列表中:
holder: List[StringHolder] = []
holder.append(StringHolder("a", "x"))
holder.append(StringHolder("a", "y"))
holder.append(StringHolder("a", "z"))
holder.append(StringHolder("b", "x"))
holder.append(StringHolder("b", "y"))
holder.append(StringHolder("b", "z")
我想从所有使用的str_a 中获得一个List[str]。我不关心重复,因为我可以通过list(set(theList)) 获得唯一的副本。我必须调整我的课程吗?
【问题讨论】:
-
all_str_a = [h.str_a for h in holder]? -
这很简单。
-
题外话:在 Python 3 中,声明类时不需要
(object)(这是默认值)。
标签: python python-3.x list