我正在编写代码,需要我将我拥有的每个列表的第一个变量移动到一个列表中。
例如:
Week1 = [2,3,4,5,6]
Week2 = [3,2,5,6,4]
# I would need to get a list that read
Week_1 = [2,3]
这大概是20左右的变量。我有个主意:
Week1 = [0, 1, 2, 2, 1]
Week2 = [4, 3, 1, 6, 3]
Week = []
i = 1
while i >= 20:
Week = Week.extend((Week + i) [0])
i = i + 1
print (Week)
我知道这可能行不通,但是'week + i'可能与变量相关,所以代码将以'Week1 [0]'扩展吗?这意味着随着循环的进行,它将把每个列表的第一个变量添加到我相信的另一个列表中。有没有更有效的方法?还是有办法解决这个问题?
答案 0 :(得分:0)
假设您的列表存储在以以下格式命名的单独的变量Week [week number]中,则可以遍历特定的星期数(此处为2
),并通过{{1}访问变量的值},将它们附加到列表中,globals()
。
first_values
答案 1 :(得分:0)
您在工作中有两个问题。首先,要同时访问每个列表中的第一个值,依此类推,可以使用zip
。
第二,您可以根据需要使用列表或字典来创建和收集每周的所有结果。与其创建可变数量的变量,不如使用一个能够容纳所需周数的容器。
解决方案可能如下所示:
Week1 = [2,3,4,5,6]
Week2 = [3,2,5,6,4]
initial_list = [Week1, Week2]
Week_dict = {}
for i, Week in enumerate(zip(*initial_list)):
Week_dict["Week_{}".format(i + 1)] = Week
print(Week_dict)
#Output:
{'Week_1': (2, 3),
'Week_2': (3, 2),
'Week_3': (4, 5),
'Week_4': (5, 6),
'Week_5': (6, 4)}