我想比较一个字符串列表,如果某个字符序列匹配,我想将那些匹配的字符串放入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']
如您所见,每个字符中的共同字符是1
或4
。
我的问题是,如果我事先不知道通用字符,该如何基于通用字符来分隔字符串?例如,我想将string_list1
解析为一个函数,并让该函数自动识别常见字符,然后基于该字符进行分离。任何帮助将是巨大的!谢谢。
答案 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)