我想向元组添加元素。我找到了两种方法。This https://stackoverflow.com/a/16730367/3337089 and this https://stackoverflow.com/a/1380875/3337089答案说添加两个元组。它将创建一个新的元组
a = (1,2,3)
b = a + (5,)
然而this https://stackoverflow.com/a/2309334/3337089说,将元组转换为列表,添加元素,然后将其转换回元组
a = (1,2,3)
tmp = list(a)
tmp.insert(3, 'foobar')
b = tuple(tmp)
这两者中哪一个在内存和性能方面更高效?
另外,假设我想在元组中间插入一个元素,可以使用第一种方法吗?
Thanks!
如果您只添加单个元素,请使用
a += (5, )
Or,
a = (*a, 5)
元组是不可变的,因此添加元素意味着您需要创建一个新的元组对象。我不建议转换为列表,除非您要在循环中添加许多元素等。
a_list = list(a)
for elem in iterable:
result = process(elem)
a_list.append(result)
a = tuple(a_list)
如果想在中间插入一个元素,可以使用:
m = len(a) // 2
a = (*a[:m], 5, *a[m:])
Or,
a = a[:m] + (5, ) + a[m:]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)