我有一个函数,它在第一次遇到冒号时跳过两部分的字符串(跳过括在括号中的部分)。此函数返回三个元素的元组:遇到冒号的索引,冒号前的部分和冒号后的部分:
def split_on_colon(str):
colon_ptr = find_separator(str, 0, ':')
if colon_ptr == -1:
return (colon_ptr, str, None)
return (colon_ptr, str[:colon_ptr], str[colon_ptr+1:])
我这样称呼它:
def substitute_expression(expression):
# Split function and arguments
colon_ptr, func, args = split_on_colon(expression)
...
但有时它并不关心colon_ptr
部分。
Python中是否有任何简单的结构允许在赋值中丢弃部分元组,这样它就不会浪费内存和变量名称空间?
这样的事情:
Ignore, func, args = split
答案 0 :(得分:2)
拒绝消耗额外内存的最佳方法是在您的功能中处理此问题。您可以使用标志作为函数的参数,然后根据此标志,您可以决定返回2或3个项目。
def split_on_colon(my_str, flag):
colon_ptr = find_separator(my_str, 0, ':')
if flag:
if colon_ptr == -1:
return (my_str, None)
return (my_str[:colon_ptr], my_str[colon_ptr+1:])
else:
if colon_ptr == -1:
return (colon_ptr, my_str, None)
return (colon_ptr, my_str[:colon_ptr], my_str[colon_ptr+1:])
答案 1 :(得分:1)
您可以使用_
,用于存储不需要的值。您的陈述将如下所示:
_, func, args = split