Python 从多个列表中创建对象

Python 从多个列表中创建对象,python,list,class,object,Python,List,Class,Object,我正在尝试创建我的类成员的对象,其入口为我创建的两个列表: class Member: __name = "" __dayoff = "" amount = int(input()) #amount of members peplist = [] #list with all the names dolist = [] #list with all the days off for i in range(0, amount): print('\n') print('t

我正在尝试创建我的类
成员的对象,其入口为我创建的两个列表:

class Member:
   __name = ""
   __dayoff = ""

amount = int(input()) #amount of members
peplist = [] #list with all the names
dolist = [] #list with all the days off

for i in range(0, amount):
   print('\n')
   print('type in a persons name please!')
   name = input()
   peplist.append(name)
   daycheck()
我的函数
daycheck()
如下所示:

def daycheck():
   print('type in', name, "'s day off, please!")
   dayoff = input()
   if (dayoff == 'monday') or (dayoff == 'tuesday') or (dayoff == 'wednesday') or (dayoff == 'thursday') or (dayoff == 'friday') or (dayoff == 'saturday') or (dayoff == 'sunday'):
       print(name, "'s dayoff is", dayoff, '!!!')
       dolist.append(dayoff)
   else:
       print("I don't know this day! Please try again!")
       daycheck()
现在,我想创建一个my class Member()的对象,其属性为两个列表中的
name
dayoff
,例如:

for i in range(0, amount):
   Member[i] = Member(peplist[i], dolist[i])

很明显,这个for循环不起作用,但是有没有办法用这样的属性表单列表创建对象?

我认为这应该更接近您的意图:

class Member:
    def __init__(self, name, dayoff):
        self.name = name
        self.dayoff = dayoff

peplist = ['A', 'B', 'C']
dolist = ['monday', 'tuesday', 'thursday']

members = [Member(name, dayoff) for name, dayoff in zip(peplist, dolist)] 
让我们看看里面是什么:

for member in members:
    print(member.name, member.dayoff)
印刷品:

A monday
B tuesday
C thursday
此功能
daycheck
将更好地工作:

def daycheck(name, dolist):
    days = ['monday', 'tuesday', 'wednesday','thursday', 'friday',
            'saturday', 'sunday']
    print('type in', name, "'s day off, please!")
    dayoff = input()
    if dayoff.strip().lower() in days:
        print(name, "'s dayoff is", dayoff, '!!!')
        dolist.append(dayoff)
    else:
        print("I don't know this day! Please try again!")
        daycheck(name, dolist)

daycheck('A', dolist)

Nit:
dayoff==“星期一”或“星期二”或“星期三”或“星期四”或“星期五”或“星期六”或“星期日”
总是正确的…@kennytm,除非您键入一个不存在的日期,在这种情况下,函数将要求您重复此过程。如果你输入例如星期一,那么它将在dolistI安全星期一我现在明白你的意思并编辑它谢谢!我明白了,但它正在创建此错误消息:AttributeError:“Member”对象没有属性“dayoff”杀了我我发现了一个拼写错误!现在可以用了,非常感谢!您编辑的func现在返回此错误msg:TypeError:daycheck()缺少2个必需的位置参数:“name”和“dolist”!我通过将daycheck(name,dolist)更改为daycheck()使其工作。您是否像这样调用它
daycheck(name,dolist)
?起初是这样做的,但它返回了一个错误,所以我尝试将其更改为daycheck():使用空括号,效果很好。再次感谢