如何给元组添加值?

95

我正在编写一个脚本,其中有一个元组列表,例如('1','2','3','4')

list = [('1','2','3','4'),
        ('2','3','4','5'),
        ('3','4','5','6'),
        ('4','5','6','7')]

现在我需要分别在每个元组结尾处添加 '1234''2345''3456''4567'。例如:

list = [('1','2','3','4','1234'),
        ('2','3','4','5','2345'),
        ('3','4','5','6','3456'),
        ('4','5','6','7','4567')]

有任何可能的方式吗?


3
在Python中,元组是不可变的。如果你想要“向元组添加内容”,为什么不从一开始就使用可变数据结构呢? - Felix Kling
2
我也这样做 - 最常用的是“file”,因为“for file in files”非常自然! - 但总的来说,你应该避免将列表称为“list”,因为它会替换内置的“list”。 - DSM
11个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

你可以使用一个生成器,这样你就不需要修改底层列表或存储一个新的列表。在插入时即时创建它,这样你只需要循环一次。

def my_generator(old_list: list, new_values: tuple):
    for idx, row in enumerate(old_list):
        new_row: list = list(row)

        new_row.append(new_values[idx])

        new_dataset: tuple = tuple(new_row)

        yield new_dataset

def make_sql():
    my_list: list = [
        ('1', '2', '3', '4'),
        ('2', '3', '4', '5'),
        ('3', '4', '5', '6'),
        ('4', '5', '6', '7')
    ]

    my_var: tuple = ('1234', '2345', '3456', '4567')

    my_new_list = my_generator(my_list, my_var)

    'I like SQL Injection attacks!'

    for row in my_new_list:
        print(
            'INSERT INTO users (V1, V2, V3, V4) '
            f'VALUES {row};'
        )


if __name__ == '__main__':
    make_sql()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,