2024-09-22 16:29:10 发布
网友
例如,我有一个元组:
(7, 5, 3, 3, 6, 3, 9)
我只想去掉元组中的第一个数字3,这样它就会变成这样:
我写的代码使用过滤器工具来去除3,但是它也会去掉所有其他3:
def takeOut(k, r): newK = tuple(filter(lambda x: x != r, k)) return newK print(takeOut((7, 5, 3, 3, 6, 3, 9), 3))
您可以利用index只返回元素的第一个索引这一事实,并将生成器表达式转换回元组:
index
>>> tuple(e for i, e in enumerate(k) if i != k.index(3)) (7, 5, 3, 6, 3, 9)
这并不像人们想象的那么简单,原因是元组是不可变的。在
一种简单的方法是转换为list,使用remove删除第一个实例,然后转换回元组:
list
remove
t = (7, 5, 3, 3, 6, 3, 9) t2 = list(t) t2.remove(3) tuple(t2) # (7, 5, 3, 6, 3, 9)
作为函数:
我会选择切片:
def remove_element(seq, element): try: index = seq.index(element) return seq[:index] + seq[index + 1:] except ValueError: # element doesn't exist return seq
您可以利用
index
只返回元素的第一个索引这一事实,并将生成器表达式转换回元组:这并不像人们想象的那么简单,原因是元组是不可变的。在
一种简单的方法是转换为
list
,使用remove
删除第一个实例,然后转换回元组:作为函数:
^{pr2}$我会选择切片:
相关问题 更多 >
编程相关推荐