我有一个像这样的列表
[796, 829, 1159, 1162]
我也有这样的清单:
['144 154', '145 151', '145 152', '145 153', '145 154', '146 152', '146 153', '146 154', '147 153', '147 154']
这些不是按比例的
我想要做的是使用第一个列表元素作为最后一个数组的索引
我尝试过这段代码:
contacts = []
for i in findres:
contacts += rulelines[i]
print contacts
其中findres
是第一个列表,rulelines
是最后一个列表
然而,这会奇怪地打印contacts
列表:
['5', ' ', '7', '2', '5', ' ', '1', '0', '5', '7', ' ', '1', '5', '0', '7', ' ', '1', '5', '3']
我很确定这很容易,但我哪里出错?
我认为理想的输出是['5 72','5 105', '7 150',7 153']
我没有放下所有列表元素,因为每个
中有超过100个元素答案 0 :(得分:2)
在您分配contacts = rulelines[i]
时,您实际上正在分配rulelines[i]
字符串。您应该contacts.append(rulelines[i])
将联系人添加到列表中,否则您将不断覆盖上一次分配。
答案 1 :(得分:1)
将此作为模板使用:
findres = [5, 7, 15, 22]
contacts = list('abcdefghijklmnopqrstuvwxyz') # dummy list
result = [ contacts[index] for index in findres ]
print result
# ['f', 'h', 'p', 'w']
答案 2 :(得分:0)
如果我理解正确,您需要先在findres
的每个元素中提取第一个数字。然后,将这些提取的数字用作另一个数组的索引
>>> findres = ['144 154', '145 151', '145 152', '145 153', '145 154', '146 152', '146 153', '146 154', '147 153', '147 154']
>>> first_elements = [c.split()[0] for c in findres]
>>> print first_elements
['144', '145', '145', '145', '145', '146', '146', '146', '147', '147']
>>> contact = []
>>> for i in first_elements:
contacts.append(rulelines[i])