当前位置:  开发笔记 > 编程语言 > 正文

将变量添加到元组

如何解决《将变量添加到元组》经验,为你挑选了6个好方法。

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

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

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

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



1> John Milliki..:

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

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

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

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


更新数据库后,您无需破坏元组.如果它们超出范围,则应该进行垃圾收集.

2> Daniel..:

你可以从一个类似的空白元组开始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)


在这个例子中,人们也可以这样做:`t =()`然后`t + =(1,)`
单例形式所需的尾随逗号是为了避免括号中的元素之间的混淆.简单的括号按操作顺序使用,因此(7)只是7.但是(7,)是一个单元素元组,其中元素是7.同样,3*(7 + 8)= 45,但是3*( 7 + 8,)=(15,15,15) - 这有意义吗?
包含尾随逗号有什么好处?
对于多元素元组,尾部逗号是100%可选的。包括它就表示“这是一个元组,我知道这是一个元组,我知道元组如何工作,并且我知道我可以做到这一点。” 但是没有逗号看起来更自然。Idk。由你决定。

3> 小智..:

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

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

回报

(0, 1, 2, 3, 4)

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


知道反过来这一点很有用,即`list(someTuple)`也可以.这两种对象类型显然是可互换的

4> Yang Bo..:

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

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


比** tuple1 +(“ baz”,)慢十倍。
到目前为止,这对我来说是最pythonic的。

5> mipadi..:

它就像以下一样简单:

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中的元组是不可变的,因此一旦创建了变量,就无法将变量附加到元组.



6> S.Lott..:

"一旦信息被添加到数据库,我应该删除元组吗?我的意思是我不再需要元组了."

没有.

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

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

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

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

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有