Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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_Constraints - Fatal编程技术网

Python 将域的两个值指定给一个约束中的变量

Python 将域的两个值指定给一个约束中的变量,python,constraints,Python,Constraints,我在python中遇到了一个关于cps的问题。我们有一个约束要求我们在3名教师之间分配2个科目(我们在该领域有6个科目),而不在他们之间重复科目。我们的问题是,我们不知道如何将域的两个值只分配给一个变量 problem.addVariables(['Billy', 'Jannet', 'Julia'], ['CN','CS','L','I','EF','M']) 所以我不知道怎么做,比如如何分配给Billy,科目CN和CS。我试着制作一个函数来比较值,如果值不同,则返回true,但它只打印类似

我在python中遇到了一个关于cps的问题。我们有一个约束要求我们在3名教师之间分配2个科目(我们在该领域有6个科目),而不在他们之间重复科目。我们的问题是,我们不知道如何将域的两个值只分配给一个变量

problem.addVariables(['Billy', 'Jannet', 'Julia'], ['CN','CS','L','I','EF','M'])
所以我不知道怎么做,比如如何分配给Billy,科目CN和CS。我试着制作一个函数来比较值,如果值不同,则返回true,但它只打印类似这样的内容 比利:M,詹妮特:我,朱莉娅:中国


任何小小的帮助都将不胜感激。

答案就在你面前:一份清单。比如说,

Billy  = ['M', 'CS']
Jannet = ['I', 'L']
Julia  = ['CN', 'EF']
由于您的名字是以字符串形式输入的,而不是以变量形式输入的,因此我希望您需要一个dict:

{ 'Billy' : ['M', 'CS'],
  ...
}

你试过使用字典/元组吗?
def addVariables(teachers, subjects):
  # convert ['CN','CS','L','I','EF','M'] to [('CN', 'CS'), ('L', 'I'), ('EF', 'M')]
  subjectPairs = zip(subjects[0::2], subjects[1::2])
  return dict(zip(teachers, subjectPairs))

print(addVariables(['Billy', 'Jannet', 'Julia'], ['CN','CS','L','I','EF','M']))
# prints {'Billy': ('CN', 'CS'), 'Jannet': ('L', 'I'), 'Julia': ('EF', 'M')}