用两个先前列表的值创建新列表

0 投票
5 回答
7167 浏览
提问于 2025-04-15 16:31

给定两个长度相同的列表 list1 和 list2,创建一个新列表,这个新列表的内容是先取 list1 的最后一个元素,然后是 list2 的最后一个元素,接着是 list1 的倒数第二个元素,再接着是 list2 的倒数第二个元素,以此类推。换句话说,新列表应该是 list1 和 list2 的元素反向交替排列。举个例子,如果 list1 是 [1, 2, 3],而 list2 是 [4, 5, 6],那么新列表应该是 [3, 6, 2, 5, 1, 4]。把这个新列表赋值给变量 list3。

我的代码:

def new(list1,list2):
    i = 0
    j = 0
    new_list = []
    for j in list1:
        new_list[i-1] = list2[j-1]
        i+= 1
        j += 1
        new_list[i-1] = list2 [j-1]
        i+= 1
        j += 1
    return new_list

我知道,这代码有点乱 =_=,谁来帮帮我?

5 个回答

1

还有另一种方法,

from itertools import izip
l1 = [1, 2, 3, 4]
l2 = [5, 6, 7, 8]
l = []
for _ in izip(reversed(l1), reversed(l2)): l.extend(_)
2

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,程序就要做出反应。这种情况我们可以用“事件”来描述。事件就像是一个信号,告诉程序发生了什么事情。

当我们编写代码时,通常会设置一些“事件监听器”。这就像是在耳边放一个小助手,随时准备听取指令。一旦事件发生,比如用户点击了按钮,这个助手就会立刻通知程序去执行相应的操作。

简单来说,事件和事件监听器的组合就让我们的程序变得更加互动和灵活。用户的每一次操作都能被程序捕捉到,从而做出相应的反馈。

list(sum(zip(list1,list2)[::-1],()))
7

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们没有正确理解某些概念。

当我们在网上寻找解决方案时,像StackOverflow这样的社区非常有帮助。这里有很多经验丰富的程序员,他们会分享自己的经验和解决方法,帮助我们理解问题所在。

在提问时,清楚地描述你的问题是很重要的。你需要告诉别人你遇到了什么情况,代码是怎样的,以及你希望得到什么样的帮助。这样,其他人才能更好地理解你的问题,并给出有效的建议。

记得在提问之前,先搜索一下是否有人遇到过类似的问题,这样可以节省时间,也能让你学到更多的知识。

总之,编程是一条不断学习的道路,遇到问题是很正常的。通过社区的帮助和自己的努力,我们可以不断进步。

l1 = [1,2,3]
l2 = [4,5,6]

newl = []
for item1, item2 in zip(reversed(l1), reversed(l2)):
    newl.append(item1)
    newl.append(item2)

print newl

撰写回答