Python 如果列表中有值,请将其附加到另一个列表中,否则请附加预定义值
假设我有一个列表a,我想根据列表B中的一些值来增加它。我想将B附加到a,如果B为空,我想输入一个预定义的值来表示这一点Python 如果列表中有值,请将其附加到另一个列表中,否则请附加预定义值,python,list,Python,List,假设我有一个列表a,我想根据列表B中的一些值来增加它。我想将B附加到a,如果B为空,我想输入一个预定义的值来表示这一点 if B: A.extend(B) else: A.append('no value') 这段代码正是我想要的,但我唯一的问题是它看起来不太像Python。我很确定,在列表中的if-else语句中,一定有一种方法可以做到这一点,比如: A.extend([[x for x in B] if B else 'no value']) 这一行几乎可以工作,但在A=
if B:
A.extend(B)
else:
A.append('no value')
这段代码正是我想要的,但我唯一的问题是它看起来不太像Python。我很确定,在列表中的if-else语句中,一定有一种方法可以做到这一点,比如:
A.extend([[x for x in B] if B else 'no value'])
这一行几乎可以工作,但在A=[]
和B=[1]
的情况下,我最终得到了A=[[1]]
,这对我想要做的事情不起作用
有什么办法可以让它工作吗?传递一个带有默认值的列表;此处也不需要列表理解:
A.extend(B or ['no value'])
我在这里使用了或
,因为在布尔上下文中,空列表被认为是错误的;这里更紧凑,避免重复
条件表达式版本为:
A.extend(B if B else ['no value'])
传递带有默认值的列表;此处也不需要列表理解:
A.extend(B or ['no value'])
我在这里使用了或
,因为在布尔上下文中,空列表被认为是错误的;这里更紧凑,避免重复
条件表达式版本为:
A.extend(B if B else ['no value'])
你想要
A.extend(如果B else['no value'])吗
?你想要A.extend(如果B else['no value'])吗
?太棒了!正是我想要的!明亮的正是我想要的!