真的需要帮助。我把自己弄得乱七八糟,打了一堵砖墙。
我有两个清单。
e_list = [('edward', '1.2.3.4.'), ('jane','1.2.3.4.'), ('jackie', '2.3.4.10.')...]
和a_list(要检查的主要列表)
a_list = [('a', '1.2.3.'), ('b', '2.3.'), ('c', '2.3.4.')...]
我的问题:我想将 e_list 中数字中的数字与 a_list 中数字的最短序列进行匹配。因此 new_list 形成如下:
new_list = [ ('edward', '1.2.3.4', '1.2.3'), ('jane', '1.2.3.4.', '1.2.3'), ('jackie', '2.3.4.10.', '2.3.')...]
我目前所做的事情(我知道的并不多)是:
for e in e_list:
e_key = e[1]
for a in a_list:
a_key = a[1]
if a_key in e_key:
print a_key, "in"
这样做是检查 a_list 的编号是否在 e_list 的编号中。但随后它会在"中打印出来。对所有序列,例如对于b和c,jackie都被计为,而我希望它是最短的值,b。我现在正在努力解决下一步的问题。任何帮助,将不胜感激。谢谢你提前。
答案 0 :(得分:1)
adapter = new MyBaseAdapterActivity(context, list);
lstName.setAdapter(adapter);
答案 1 :(得分:0)
首先排序a_list,然后执行循环检查。
a_list.sort(key=lambda x: x[1])
for e in e_list:
e_key = e[1]
for a in a_list:
a_key = a[1]
if a_key.startswith(e_key):
print a_key, "in"
break
排序后,a_list中的短数字字符串将首先出现,所以在循环中你只需要找到第一个匹配。