Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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,我刚刚开始学习python, 我有一个简单的问题 l=['aa123','aa122','aa124','bb125','bb180'] #form above list i want to print a result as following: Group 1 aa123 aa122 aa124 Group 2 bb125 bb180 我希望如果我用“cc000”更新列表,它也会打印“第3组” 感谢和问候, Giovanni您可以使用字典更好地分组您的值: import string

我刚刚开始学习python, 我有一个简单的问题

l=['aa123','aa122','aa124','bb125','bb180']

#form above list i want to print a result as following:

Group 1
aa123
aa122
aa124

Group 2
bb125
bb180
我希望如果我用“cc000”更新列表,它也会打印“第3组”

感谢和问候,
Giovanni

您可以使用字典更好地分组您的值:

import string
from collections import defaultdict
l=['aa123','aa122','aa124','bb125','bb180']
key = {a:b+1 for a, b in zip(string.ascii_lowercase, range(26))}
d = defaultdict(list)
for val in l:
   d[key[val[0]]].append(val)
for a, b in d.items():
   print("Group {}".format(a), b)
输出:

Group 1 ['aa123', 'aa122', 'aa124']
Group 2 ['bb125', 'bb180']
{'Group b': ['bb125', 'bb180'], 'Group a': ['aa123', 'aa122', 'aa124']}
或者,在列表理解中使用
groupby

import itertools
final_vals = {"Group {}".format(a):list(b) for a, b in itertools.groupby(sorted(l, key=lambda x:x[0]), key=lambda x:x[0])}
print(final_vals)
输出:

Group 1 ['aa123', 'aa122', 'aa124']
Group 2 ['bb125', 'bb180']
{'Group b': ['bb125', 'bb180'], 'Group a': ['aa123', 'aa122', 'aa124']}

有点慢,因为您要进行26*len(i)迭代来创建排序列表。我不确定这是否完全回答了你的问题。。。当“ab111”这样的项目出现在列表中时会发生什么?它会忽略这一点吗?

看一看,似乎您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。实际上我试着在上面写了很多代码,我没有发布它以避免产生误解。我想从你那里知道什么是最好的方法。我不是在寻找一个书面的代码,如果不是的话,我会在我的真实项目中添加一个例子。根据Felk的建议,我将看一看groupby。