递减python中的元组值

时间:2017-12-29 01:28:46

标签: python python-3.x

我有一个列表,其中包含各种客户端的服务时间,我想循环遍历此列表并每秒减少服务时间

import time

def mylist():
    active_clients.append((1,20))

    t = list(active_clients)

    print "service time = %s" ,t[0][1]
    print type(t)

    while(t[0][1] > 0):
        old_service_time = t[0][1]
        t[0][1]  = old_service_time -1
        time.sleep(1)


if __name__ == '__main__':
    active_clients = []
    mylist()

我知道元组是不可变的,因此我使用list()进行转换,但为什么我仍然无法减少服务时间值?

2 个答案:

答案 0 :(得分:3)

但是,列表中的元素仍然是元组。尝试:

t = list(map(list, active_clients))

这确保t及其元素实际上都是lists并且可变。

答案 1 :(得分:0)

正如@schwobaseggl所指出的那样是工作代码片段

import time

def mylist():
    active_clients.append((1,20))

    t = list(map(list, active_clients))



    while(t[0][1] > 0):

        print "service time =", t[0][1]
        t[0][1] = t[0][1] - 1
        time.sleep(1)


if __name__ == '__main__':
    active_clients = []
    mylist()