两个列表之间的布尔值评估不起作用

时间:2013-09-08 04:33:25

标签: python list boolean

我对这个评估有一个疑问,“旧”,这是一个元组列表,在使用bp_list进行评估时应该评估False,这是一个相同的元组列表,但项目更少。非常感谢你。

while True: # game loop
    if dead_flag == True:
        pygame.time.wait(2000)
        dead_flag = False    
    MAINSURF.fill(BLACK)

    thePill.drawPills(p_inventary)
    oldpoints = points
    p_inventary, points = thePill.eatenPill(pac._x, pac._y, p_inventary)

    bigPill(*bp_list)
    #### This is the problematic part
    old = bp_list
    print ">>>", old
    bp_list = eatBig(bp_list, pac._x, pac._y)
    print "---",bp_list
    if (old != bp_list):
        print "they're different"
        print "##", old_bp_list
        print "##", bp_list
        score += 50

    if oldpoints != points:
        score = (basep - points) * 10


    """else: 
        print "old_bp_list ", old_bp_list
        print "bp_list ", bp_list    """     
    if p_inventary == []:
        break

1 个答案:

答案 0 :(得分:1)

old = bp_list

此行不会将old转换为bp_list的副本。在此行之后,oldbp_list都引用同一个对象,对bp_list的任何修改都会显示在old上。