不等长列表对应元素求和生成新列表,多的元素加到新列表
时间: 2024-03-17 21:40:16 浏览: 49
可以使用zip()函数和列表解析来实现不等长列表对应元素求和并生成新列表,同时将多余的元素加到新列表的末尾。具体代码如下:
```python
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7]
sum_list = [x+y for x,y in zip(list1, list2)]
if len(list1) > len(list2):
sum_list += list1[len(list2):]
elif len(list2) > len(list1):
sum_list += list2[len(list1):]
print(sum_list)
```
输出结果为:
```
[6, 8, 10, 4]
```
和前面的例子相比,这个代码多了if-elif语句块,用来判断哪个列表比较长。如果list1比list2长,则将list1中多出来的元素添加到新列表的末尾;如果list2比list1长,则将list2中多出来的元素添加到新列表的末尾。需要注意的是,这个代码假设两个列表中的元素类型相同,否则可能会出现类型错误。
相关问题
输入不等长列表对应元素求和生成新列表,多的元素加到新列表
好的,我理解了你的问题。我可以写一个函数来实现这个功能,以下是 Python 代码示例:
```python
def sum_lists(list1, list2):
"""
输入不等长列表对应元素求和生成新列表,多的元素加到新列表
"""
# 确定哪个列表更长
if len(list1) >= len(list2):
longer_list = list1
shorter_list = list2
else:
longer_list = list2
shorter_list = list1
# 求和并生成新列表
new_list = []
for i in range(len(longer_list)):
if i < len(shorter_list):
new_list.append(longer_list[i] + shorter_list[i])
else:
new_list.append(longer_list[i])
return new_list
```
你可以直接调用这个函数并传入两个列表作为参数,函数将会返回一个新列表,其中包含了输入的两个列表对应元素求和的结果,多出来的元素会被加到新列表的末尾。
不等长列表对应元素求和生成新列表
可以使用zip()函数和列表解析来实现不等长列表对应元素求和并生成新列表,具体代码如下:
```python
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7]
sum_list = [x+y for x,y in zip(list1, list2)]
print(sum_list)
```
输出结果为:
```
[6, 8, 10]
```
zip()函数可以将对应位置的元素打包成一个元组,例如:
```
list(zip(list1, list2))
```
输出结果为:
```
[(1, 5), (2, 6), (3, 7)]
```
然后使用列表解析将每个元组中的元素相加,并生成新的列表。需要注意的是,由于列表长度不同,zip()函数默认会以最短的列表长度为准,因此在这个例子中,列表list1中的最后一个元素4被忽略掉了。
阅读全文