改进将 [‘abc’, ‘def’, ‘ghi’] 形式的列表分离成 (‘abc’, [‘def’, ‘ghi’]) 的功能?
python 311
原文标题 :Improve function of seperating lists of form [‘abc’, ‘def’, ‘ghi’] into (‘abc’, [‘def’, ‘ghi’])?
我有以下代码段将列表的第一个元素和其余元素分成两个变量:
test1 = [['p', '(q ∧ ¬(q))', '¬(p)'], ['p', '(¬(p) ∧ ¬(¬(p)))', '¬(p)']]
test2 = ['p', '(q ∧ ¬(q))', '¬(p)', 'q']
def seperate(data, index=None):
if index == None:
head = data[0]
origin = data[1:]
else:
head = data[index][0]
origin = data[index][1:]
return (head, origin)
print(seperate(test1,0))
print(seperate(test2))
print(seperate(test1,1))
输出:
('p', ['(q ∧ ¬(q))', '¬(p)'])
('p', ['(q ∧ ¬(q))', '¬(p)', 'q'])
('p', ['(¬(p) ∧ ¬(¬(p)))', '¬(p)'])
这很好用。我的问题是函数的外观和感觉,例如通过 if else 语句。
因为在两个 if else 块中几乎完全相同。两个输入的维度略有不同。
我的问题是他们以这种方式优化代码的方法我只有一个分配head = ...
和一个分配origin = ...