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

python中基于某种条件的对象数组中的互斥数组

python中基于某种条件的对象数组中的互斥数组,python,algorithm,data-structures,Python,Algorithm,Data Structures,正如标题所解释的,我想从匹配以下某个条件的对象数组中创建两个互斥列表(list1和list2),下面是一个对象示例 reviews = [ ... { ... "mood": "happy" ... }, { ... &qu

正如标题所解释的,我想从匹配以下某个条件的对象数组中创建两个互斥列表(list1和list2),下面是一个对象示例

reviews = [
            ...
            {
              ...
              "mood": "happy"
              ...
            },
            {
              ...
              "mood": "sad"
              ...
            },
            {
              ...
              "mood": "neutral"
              ...
            },
            ...
          ]
现在我从用户那里得到了两种情绪,分别是m1和m2,我循环查看数组,并将每个对象分别添加到列表1(如果m1==情绪)和列表2(如果m2==情绪)。
列表1和列表2最多应该有5条评论,它们不应该是空的。保证m1和m2始终匹配审查

for review in reviews:
 if review['mood'] == m1:
   list1.append(review)
 if review['mood'] == m2:
   list2.append(review)

假设用户给m1和m2都表示“高兴”,现在这两个列表将有相同的评论。我希望它们是排他性列表,这意味着如果一篇评论在列表1中,它就不应该在列表2中。我已经使用一个map对象解决了这个问题,该对象将包含添加到列表1的评论的评论id,并且我只会在其键值对为None时将评论添加到列表2。

但是我觉得有更好的方法来解决这个问题。最直接的方法是使用
elif

for review in reviews:
 if review['mood'] == m1:
   list1.append(review)
 elif review['mood'] == m2:
   list2.append(review)

如果第一个
条件为真,则第二个条件甚至不会被检查。

因此,我认为您需要维护一个计数器,这将解决您的问题

#m1==m2
count=0
for review in reviews:
    if count%2==0:
        list1.append(review)
    else:
        list2.append(review)
    count+=1

让我知道这对你有用

这将使列表2为空,不是吗?如果
m1==m2
是的,
list2
将保持为空,但这是所需的行为,不是吗?不,请阅读问题,它们不能为空,哪些应该在
list1
中,哪些在
list2
中?如果您可以准确地指定,那么实际的解决方案很可能是微不足道的。没有任何标准只要求它们相互排斥。您需要提供您所期望的示例输出!我想这会有用的,谢谢