先说几点。在 python 中,字符串用于文本。您所说的字符串是元组或列表。列表是对象的有序列表。在 python 中,它是这样表示的,a = [1,2,3,4]
所以 a 是 4 个数字的列表。元组就像一个列表,但它是不可变的,一旦创建就不能修改。如果您想要一个不同的版本,您需要制作一个带有更改的新副本。
话虽如此,我想我明白你想要什么(但如果我理解不正确,请纠正我)。此代码应该适用于您的示例:
lo_values = (1, 10, 20, 30, 40, 50) # this a tuple
hi_values = (9, 19, 29, 39, 49, 60) # this too
rows = [ ('T', 'L', 'L', 'L', 'T', 'B'),
('B', 'B', 'B', 'T', 'T', 'T')] # rows is a list containing 2 tuples, one with each row
for row in rows:
result = []
previous_value = row[0]
run_start = 0
for i in range(1, len(row)):
value = row[i]
if value != previous_value:
lower_bound = lo_values[run_start]
upper_bound = hi_values[i-1]
result.append((lower_bound, upper_bound, previous_value))
run_start = i
previous_value = value
lower_bound = lo_values[run_start]
upper_bound = hi_values[-1]
result.append((lower_bound, upper_bound, row[-1]))
print result
运行结果:
[(1, 9, 'T'), (10, 39, 'L'), (40, 49, 'T'), (50, 60, 'B')]
[(1, 29, 'B'), (30, 60, 'T')]
这应该让您开始了解如何解决问题。