我有一个随机字符串列表,如下所示:
strings = ["zone", "abigail", "theta", "form", "libe", "zas"]
我想要的是一个字典,其中len
的字符串(非唯一的,线性的,因为它们在列表中)作为键,字符串作为值。似乎很平庸,但我试着用一句话来写,找一个更好的方式来写。你知道吗
我试过这个:
dict_of_len = {len(element):element for element in strings}
但不知怎的,我把它作为一个输出:
{4: 'libe', 7: 'abigail', 5: 'theta', 3: 'zas'}
len等于4。我做错什么了?你知道吗
我想要的是:
{4: 'zone', 7: 'abigail', 5: 'theta', 4: 'form', 4: 'libe', 3: 'zas'}
dict
键必须是唯一的,解决问题的一个更好的替代解决方案是将长度存储为键(如之前所做的),并将具有该长度的字符串列表存储为值,您可以使用itertools.groupby
(这要求数据按其分组依据的条件排序):输出:
作为需要预排序的
groupby
解决方案的替代方案,您可以使用defaultdict
或setdefault
简洁地累积值列表:或者,使用更古老的成语:
但是
groupby
解决方案没有什么问题,只要您不介意排序。你知道吗相关问题 更多 >
编程相关推荐