如何使用Python根据常用字符对列表中的字符串进行排序?

时间:2019-09-27 15:30:52

标签: python python-3.x string list

我想比较一个字符串列表,如果某个字符序列匹配,我想将那些匹配的字符串放入new_list中,就像这样:

string_list1 = ['CE.1.FXZ', 'CE.1.FXX', 'CE.1.FXY', 'CE.4.FXZ', 'CE.4.FXX', 'CE.4.FXY']

new_list = ['CE.1.FXZ', 'CE.1.FXX', 'CE.1.FXY']

如您所见,每个字符中的共同字符是14

我的问题是,如果我事先不知道通用字符,该如何基于通用字符来分隔字符串?例如,我想将string_list1解析为一个函数,并让该函数自动识别常见字符,然后基于该字符进行分离。任何帮助将是巨大的!谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用python内置的str.split()方法(更多信息位于https://docs.python.org/fr/2.7/library/stdtypes.html#str.split)来隔离示例中的“公共字符”:

for i in string_list1:
    common_character = i.split(".")[1]

下一步是每次看到新颖的“ common_character”时都会创建一个列表,或者使用list.append()方法(一个接一个)将元素添加到现有列表中。

祝你好运!

答案 1 :(得分:0)

如果公共字符始终是第二个标记(在 CREATE TABLE members ( id INTEGER PRIMARY KEY, team_id INTEGER NOT NULL, member_number INTEGER NOT NULL, UNIQUE(team_id, member_number), FOREIGN KEY (team_id) REFERENCES teams (id) ); 上拆分时),您可以使用默认字典,其中每个键是公共字符,每个值是公共字符列表。

.

输出:

from collections import defaultdict

string_list1 = ['CE.1.FXZ', 'CE.1.FXX', 'CE.1.FXY', 'CE.4.FXZ', 'CE.4.FXX', 'CE.4.FXY']

common_chars = defaultdict(list)
for str in string_list1:
    common_chars[str.split('.')[1]].append(str)
for common_group in common_chars.values():
    print(common_group)