附加到元组列表

时间:2016-05-01 12:49:00

标签: python

我有一个元组列表,如下所示:

    my_list = [(["$"], 1.5)]

我还将这些贵重物品存储为变量:

    val1 = "#"
    val2 = 3.0

我希望能够将val1附加到元组中的列表中,并将val2与元组中的第二个元素相乘。它应该是这样的:

    [(["$", "#"], 4.5)]
到目前为止,我有这个:

    for item in my_list:
        for i in item:
            i[0].append(val1)
            i[1] = i[1] * val2

但到目前为止,这是行不通的,还有另一种方法吗?

2 个答案:

答案 0 :(得分:7)

元组是不可变的。因此,您必须创建一个新的:

for i, item in enumerate(my_list):
    item[0].append("#")
    my_list[i] = item[0], item[1] * 3

答案 1 :(得分:1)

既然您必须创建新元组,为什么不在创建新列表时创建新列表呢?这将允许一个简单的列表理解:

>>> my_list = [(["$"], 1.5), (["@"], 2.5)]
>>> val1 = "#"
>>> val2 = 3.0
>>> new_list = [(x+[val1],y*val2) for x,y in my_list]
>>> new_list
[(['$', '#'], 4.5), (['@', '#'], 7.5)]
相关问题