Python 合并具有相同元素数的两个列表并按顺序添加它们
我有点像:Python 合并具有相同元素数的两个列表并按顺序添加它们,python,python-3.x,list,Python,Python 3.x,List,我有点像: list1 = [1, 3, None] list2 = [2, 5, None] merged_list = [12, 35, None] 我希望得到类似的东西: list1 = [1, 3, None] list2 = [2, 5, None] merged_list = [12, 35, None] 另外,两个列表的长度始终相同,并且可以作为一个元素使用None值。您可以将两个列表压缩在一起并处理每一对元素 [10 * a + b if a and b else Non
list1 = [1, 3, None]
list2 = [2, 5, None]
merged_list = [12, 35, None]
我希望得到类似的东西:
list1 = [1, 3, None]
list2 = [2, 5, None]
merged_list = [12, 35, None]
另外,两个列表的长度始终相同,并且可以作为一个元素使用None值。您可以将两个列表压缩在一起并处理每一对元素
[10 * a + b if a and b else None for a, b in zip(x, y)]
如果两者都不是,则此列表将合并a和b。否则,它将一无所获
编辑:如果您只想合并任何值,请执行相同的操作,但请确保强制转换为字符串,以便任何值都可以工作:
[str(a) + str(b) if a and b else None for a, b in zip(x, y)]
注意,它不会就地进行合并,而是返回一个新数组,其中包含组合值您可能希望在此处组合字符串。差不多
merged_list = []
for(i,j in zip(list1, list2):
if(element is not None):
merged_list.append(float(str(i) + str(j))
else:
merged_list.append(None)
代码未测试 你尝试过的东西可能重复,它到底有什么问题?我想你应该解释一下你为什么要这么做this@incapaz@jonsharpe@mayeul sgc Hi,很抱歉可能没有很好地解释输出,但本质上是按顺序合并了这两个元素(也就是说,如果第一个列表的元素是
'lala'
,而第二个列表的元素是'land'
,那么合并列表的第一个元素将是'lalaland'
,在这种情况下就是数值。或者[10*a+b如果a和b在zip中没有a,b(列表1,列表2)]@mauve好主意,我改了。这是一个更好的解决方案,因为他们希望元素改为int。不需要强制转换感谢快速回答,但很抱歉我没有解释清楚。但本质上是按顺序合并这两个元素(也就是说,如果第一个列表的元素是'lala'
,而第二个列表的元素是'land'
,那么合并列表的第一个元素将是'lalaland'
,只是在这种情况下是数值。@LucasMengual将其更改为使用字符串或int。逻辑是相同的,只是如何处理这些元素的组合。)两个价值观。