Python: 用更少的变量覆盖一个新的列表
Python: writing over a new list with less variables
我在思考这个问题时遇到了困难。
我有两个列表,如下所示。
my_orig_list = [(None, None), (None, None), (None, None), (None, None),(None, None), (None, None)]
new_values = [('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e')]
如何让它有 (None, None)
作为最终输出,如以下所需输出所示?
my_new_list = [('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e'), (None, None)]
我还要声明 new_values
的长度会不时改变。
我考虑过确定列表的长度,然后编写一个函数来交换这些值,但我似乎无法理解这个相对简单的过程。
如果有人问过这个问题,我深表歉意。也许我不太了解术语,无法知道这将被称为什么。
只是切片 很容易 ..
my_orig_list[:len(new_values)] = new_values[:]
请记住
new_values[:]
复制列表,即制作另一个副本,
而只是做。
my_orig_list[:len(new_values)] = new_values
会给出一个参考,只要你不操纵 new_values
,两者都可以在这种情况下使用,但是我会推荐 new_values[:]
可能在下面:
new_values.extend(my_orig_list[:-len(new_values)])
您可以遍历新值,并使用每个数组的索引更新原始值,如下所示:
for i in range(len(new_values)):
my_orig_values[i] = new_values[i]
这会将 my_orig_values 的第一个值设置为 new_values 的第一个值,依此类推,直到 new_values
结束
我在思考这个问题时遇到了困难。
我有两个列表,如下所示。
my_orig_list = [(None, None), (None, None), (None, None), (None, None),(None, None), (None, None)]
new_values = [('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e')]
如何让它有 (None, None)
作为最终输出,如以下所需输出所示?
my_new_list = [('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e'), (None, None)]
我还要声明 new_values
的长度会不时改变。
我考虑过确定列表的长度,然后编写一个函数来交换这些值,但我似乎无法理解这个相对简单的过程。
如果有人问过这个问题,我深表歉意。也许我不太了解术语,无法知道这将被称为什么。
只是切片 很容易 ..
my_orig_list[:len(new_values)] = new_values[:]
请记住
new_values[:]
复制列表,即制作另一个副本,
而只是做。
my_orig_list[:len(new_values)] = new_values
会给出一个参考,只要你不操纵 new_values
,两者都可以在这种情况下使用,但是我会推荐 new_values[:]
可能在下面:
new_values.extend(my_orig_list[:-len(new_values)])
您可以遍历新值,并使用每个数组的索引更新原始值,如下所示:
for i in range(len(new_values)):
my_orig_values[i] = new_values[i]
这会将 my_orig_values 的第一个值设置为 new_values 的第一个值,依此类推,直到 new_values
结束