我正在使用列表全面的“搜索”来匹配我的员工类的对象。然后我想根据匹配搜索的人为他们分配一个值。
基本上代码相当于询问谁喜欢三明治,然后给那个人一个三明治。
这位有效
class Employee():
def __init__(self, name, age, favoriteFood):
self.name = name
self.age = age
self.favoriteFood = favoriteFood
def __repr__(self):
return "Employee {0}".format(self.name)
employee1 = Employee('John', 28, 'Pizza')
employee2 = Employee('Kate', 27, 'Sandwiches')
myList = [employee1, employee2]
a = 'Sandwiches'
b = 'Tuna Mayo Sandwich'
matchingEmployee = [x for x in myList if x.favoriteFood == a]
print matchingEmployee
这会打印 repr
类中的“员工凯特”我坚持的位置现在给凯特金枪鱼梅奥三明治,价值b。
我希望做一些像
这样的事情matchingEmployee.food = b
但是这不会在该对象中创建一个新变量并为其赋值b。
任何帮助都会受到极大的欢迎。
答案 0 :(得分:2)
我已经了解到列表全面产生了一个列表(这可能听起来很愚蠢:))我已经添加了一个for循环来迭代匹配的雇员列表,以便将三明治提供给任何想要它的人。
INSendPaymentIntent
由于
答案 1 :(得分:0)
由于变量matchingEmployee是一个列表,并且在给定的上下文中,Kate是列表中的第一个,你可以这样做:
matchingEmployee[0].food = b
答案 2 :(得分:0)
如果您想向符合您的过滤条件的每位员工追加食物,您需要遍历匹配的员工列表。 例如:
for employee in matchingEmployee:
employee.food = b
答案 3 :(得分:0)
使用命令行python编写简化表达式:
[ y for y in [1,2,3,4] if y %2 ==0]
您将看到它会产生列表输出
[2, 4]
您的"匹配的员工"实际上是匹配员工的列表。所以要#34;给三明治"找到第一个员工(假设有一个):
matchingEmployee[0].food = b
To"给三明治"到员工名单:
for employee in matchingEmployee:
employee.food = b