Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从起始两个单词相同的单词列表中获取单词列表_Python_Python 3.x_List - Fatal编程技术网

Python 如何从起始两个单词相同的单词列表中获取单词列表

Python 如何从起始两个单词相同的单词列表中获取单词列表,python,python-3.x,list,Python,Python 3.x,List,假设我的输入列表是: ["customer service skill","sales representative", "customer service","customer service experience"] 输出应为: [["sales representative"],["customer service skill","customer service","customer service experience"]] 有什么有效的方法可以做到这一点吗?这是一种使用coll

假设我的输入列表是:

["customer service skill","sales representative",
 "customer service","customer service experience"]
输出应为:

[["sales representative"],["customer service skill","customer service","customer service experience"]]

有什么有效的方法可以做到这一点吗?

这是一种使用
collections.defaultdict
的方法

Ex:

from collections import defaultdict

lst = ["customer service skill","sales representative","customer service","customer service experience"]
result = defaultdict(list)
for i in lst:
    result[tuple(i.split()[:2])].append(i)   #Key = starting two words
print(list(result.values()))
lst = ["customer service skill","sales representative","customer service","customer service experience"]
result = {}
for i in lst:
    result.setdefault(tuple(i.split()[:2]), []).append(i)   #Key = starting two words
print(list(result.values()))
[['customer service skill', 'customer service', 'customer service experience'], ['sales representative']]

或者使用
dict.setdefault

Ex:

from collections import defaultdict

lst = ["customer service skill","sales representative","customer service","customer service experience"]
result = defaultdict(list)
for i in lst:
    result[tuple(i.split()[:2])].append(i)   #Key = starting two words
print(list(result.values()))
lst = ["customer service skill","sales representative","customer service","customer service experience"]
result = {}
for i in lst:
    result.setdefault(tuple(i.split()[:2]), []).append(i)   #Key = starting two words
print(list(result.values()))
[['customer service skill', 'customer service', 'customer service experience'], ['sales representative']]
输出:

from collections import defaultdict

lst = ["customer service skill","sales representative","customer service","customer service experience"]
result = defaultdict(list)
for i in lst:
    result[tuple(i.split()[:2])].append(i)   #Key = starting two words
print(list(result.values()))
lst = ["customer service skill","sales representative","customer service","customer service experience"]
result = {}
for i in lst:
    result.setdefault(tuple(i.split()[:2]), []).append(i)   #Key = starting two words
print(list(result.values()))
[['customer service skill', 'customer service', 'customer service experience'], ['sales representative']]