将两个字符串列表相互比较Python

时间:2017-07-04 11:21:11

标签: python string list comparison

我想比较两个字符串列表,找到公共字符串并将公共字符串存储在新列表中。

例如:

my_list1=['      4,         -40.,         -12.\n',
 '      5,         -40.,         -15.\n',
 '      6,         -40.,         -18.\n',
 '      7,         -40.,         -21.\n',
 '      8,         -40.,         -24.\n',
 '      9,         -40.,         -27.\n',
 '     14,         -30.,         -30.\n',
 '     15,         -28.,         -30.\n']

my_list2=['49',
 '50',
 '51',
 '10',
 '53',
 '54',
 '55',
 '56',
 '57',
 '58',
 '59',
 '60',
 '6162',
 '15',
 '64',
 '65',
 '66']

我想要做的是将my_list2的每个字符串与my_list1中字符串的开头进行比较。

例如my_list1包含来自'15'my_list2的{​​{1}},所以我想要一个新列表来保存所有常用字符串

2 个答案:

答案 0 :(得分:3)

您可以使用str.startswith,它可以将一组元素作为参数。 左侧条带第一个列表中的每个项目,并检查项目是否以第二个列表中的任何字符串开头:

t = tuple(my_list2)
lst = [x for x in my_list1 if x.lstrip().startswith(t)]
print lst
# ['     15,         -28.,         -30.\n']

答案 1 :(得分:0)

my_list1_new = [i.strip().split(",")[0] for i in my_list1 ]
for i in my_list2:
    if i in my_list1_new:
        print(my_list1[my_list1_new.index(i)])