首页 文章

将变量添加到元组

提问于
浏览
209

我正在学习Python并创建数据库连接 . 在尝试添加到数据库时,我正在考虑从信息中创建元组,然后将它们添加到数据库中 .

What I am Doing :我从用户那里获取信息并将其存储在变量中 . 我可以将这些变量添加到元组中吗?你能帮我解释一下语法吗?

如果有一种有效的方法,请分享......

EDIT 让我稍微编辑一下这个问题......我只需要元组就可以在数据库中输入信息了 . 将信息添加到数据库后,我应该删除元组吗?我的意思是我不再需要元组了 .

8 回答

  • 5

    在Python 3中,您可以使用 * 在原始元组中创建新元素元素以及新元素 .

    >>> tuple1 = ("foo", "bar")
    >>> tuple2 = (*tuple1, "baz")
    >>> tuple2
    ('foo', 'bar', 'baz')
    
  • 184

    你可以从像 t = () 这样的空白元组开始 . 您可以使用 + 添加,但必须添加另一个元组 . 如果要添加单个元素,请将其设为单个元素: t = t + (element,) . 您可以添加包含或不包含该逗号的多个元素的元组 .

    >>> t = ()
    >>> t = t + (1,)
    >>> t
    (1,)
    >>> t = t + (2,)
    >>> t
    (1, 2)
    >>> t = t + (3, 4, 5)
    >>> t
    (1, 2, 3, 4, 5)
    >>> t = t + (6, 7, 8,)
    >>> t
    (1, 2, 3, 4, 5, 6, 7, 8)
    
  • 7

    正如其他答案所指出的,您无法更改现有元组,但您始终可以创建新元组(可能会从现有元组和/或其他源中获取部分或全部项目) .

    例如,如果感兴趣的所有项都在标量变量中,并且您知道这些变量的名称:

    def maketuple(variables, names):
      return tuple(variables[n] for n in names)
    

    要使用,例如,如下例所示:

    def example():
      x = 23
      y = 45
      z = 67
      return maketuple(vars(), 'x y z'.split())
    

    当然,这一个案例将更简单地表达为 (x, y, z) (甚至可以完全表达名称, (23, 45, 67) ),但 maketuple 方法在某些更复杂的情况下可能会有用(例如,使用的名称也是动态确定并附加到在计算过程中列出) .

  • 37

    它就像以下一样简单:

    info_1 = "one piece of info"
    info_2 = "another piece"
    vars = (info_1, info_2)
    # 'vars' is now a tuple with the values ("info_1", "info_2")
    

    但是,Python中的元组是不可变的,因此一旦创建了变量,就无法将变量附加到元组 .

  • 267

    元组是不可改变的;你不能在施工后改变它们包含的变量 . 但是,您可以连接或切片它们以形成新元组:

    a = (1, 2, 3)
    b = a + (4, 5, 6)
    c = b[1:]
    

    当然,从现有值构建它们:

    name = "Joe"
       age = 40
       location = "New York"
       joe = (name, age, location)
    
  • 1

    另一个尚未提到的策略是使用附加到列表,然后将列表转换为最后的元组:

    mylist = []
    for x in range(5):
        mylist.append(x)
    mytuple = tuple(mylist)
    print mytuple
    

    回报

    (0, 1, 2, 3, 4)
    

    当我必须将元组作为函数参数传递时,我有时会使用它,这通常是numpy函数所必需的 .

  • 7

    我很确定python中的语法是:

    user_input1 = raw_input("Enter Name: ")
    user_input2 = raw_input("Enter Value: ")
    info = (user_input1, user_input2)
    

    一旦设置,元组就无法更改 .

  • 3

    " once the info is added to the DB, should I delete the tuple? i mean i dont need the tuple anymore."

    没有 .

    一般来说,没有理由删除任何东西 . 有一些特殊情况需要删除,但它们非常非常罕见 .

    只需定义一个窄范围(即类中的函数定义或方法函数),对象将在范围的末尾进行垃圾收集 .

    删除任何东西都不要担心 .

    [注意 . 我与一个人 - 除了试图删除对象 - 一直在写“重置”方法来清除它们 . 就像他要保存它们并重复使用它们一样 . 也是一个愚蠢的自负 . 只需忽略您不再使用的对象 . 如果你用足够小的代码块定义你的函数,你就没有什么可考虑的 . ]

相关问题