所以我有一个txt,它有两行作为
move 30 20 50
move 60 2 54
我把这两行分成两个元素,组成一个像这样的列表
codereader = 'deneme.txt'
file_handle = open(codereader, "r")
text = file_handle.read().splitlines()
terminal_reader = "{}".format(text)
print(terminal_reader)
它给了我下面的解决方案
#['move 30 20 50','move 60 2 54']
但我也必须把每个数字放在不同的元组中,比如30和60,必须进入名为speed的列表。20和2必须转到被叫距离列表,最后的数字必须转到被叫时间列表。所以最终的解决方案必须是这样的。
speed_values = ['30', '60']
distance_values = ['20','2']
time_values = ['50','54']
但如果我在txt中添加另一个移动,代码必须将最后一个移动的数字附加到列表的末尾。我不知道如何像这样把他们分开。
您可以循环text
中的值,并拆分其中的每个值:
line_items = [line.split() for line in text]
现在您有了[['move', '30', '20', '50'], ['move', '60', '2', '54']]
。
要对同一索引上的值进行分组,可以使用zip
函数:
line_items = zip(*[['move', '30', '20', '50'], ['move', '60', '2', '54']])
这将为您提供一个迭代器,看起来像:[['move', 'move'], ['30', '60'], ...
现在您可以将它们分配到变量中。
In [1]: a, b = zip([1, 2], [3, 4])
In [2]: a
Out[2]: (1, 3)
In [3]: b
Out[3]: (2, 4)