我已经被困在这段小代码上了很长一段时间,并且想知道是否有人可以帮助解决我的问题或告诉我如何编码它。我想要的输出是手机:['motorolla','oneplus'] 我基本上试图输出超过7个字母的电话名称,提前谢谢
def main():
my_dict = {'phones': ['galaxy', 'oneplus', 'google', 'apple', 'motorolla']}
items_list = list(my_dict.items())
for key, value in items_list:
if len(value) < 7:
del my_dict[value]
return my_dict
def print_dict_in_key_order(a_dict):
all_keys = list(a_dict.keys())
all_keys.sort()
for key in all_keys:
print(key, ":", a_dict[key])
main()
答案 0 :(得分:1)
def main():
my_dict = {'phones': ['galaxy', 'oneplus', 'google', 'apple', 'motorolla']}
#items_list = list(my_dict.items())
for key in my_dict:
new_list=[]
for value in my_dict[key]:
if len(value)>=7:
new_list.append(value)
my_dict[key]=new_list
print('{}:'.format(key),new_list)
print(my_dict)
return my_dict
main()的
main()
我认为这对您来说更容易理解。
答案 1 :(得分:0)
一种方法是使用字典理解来重建字典,例如:
def main():
my_dict = {'phones': ['galaxy', 'oneplus', 'google', 'apple', 'motorolla']}
return {k: sorted(v for v in vs if len(v) >= 7) for k, vs in my_dict.items()}
In []:
main()
Out[]:
{'phones': ['motorolla', 'oneplus']}
如果您只是想要手机,那么您可以用以下内容替换理解:
return sorted(v for vs in my_dict.values() for v in vs if len(v) >= 7)