#问题1
str='http://Google.com'
result={}
for i in str:
if i.isalpha():
result[i]=result.get(i,0)+1
rst=sorted(result.items(),key=lambda x:x)
result={}
for item in rst:
result[item[0]]=item[1]
print(result)
#问题2
sample_list=[1,2,2,3,3,3,3,4,5]
kv={}
result=[]
for i in sample_list:
kv[i]=kv.get(i,0)+1
if kv.get(i,0)>1 and i not in result:
result.append(i)
print(result)
from collections import Counter, OrderedDict
# 题一
# 方式一
s = 'http://Google.com'
d = {}
for i in s:
if i.isalpha():
d[i] = d.get(i, 0) + 1
print(dict(sorted(d.items())))
# 方式二
print(dict(sorted(Counter(filter(lambda x: x.isalpha(), s)).items())))
# 题二
# 方式一
list = [1, 2, 2, 3, 3, 3, 3, 4, 5]
ans = []
L = sorted(list)
for i in range(len(L) - 1):
if L[i] == L[i + 1]:
if L[i] not in ans:
ans.append(L[i])
print(sorted(ans, key=lambda x: list.index(x)))
# 方式二
d = OrderedDict(Counter(list))
print([i for i in d.keys() if d[i] != 1])
第一个问题,遍历时加个if判断下是不是字母,不是字母直接跳过
第二个问题,按你的思路,你可以遍历list,当前值在set中存在存入答案,不存在set中插入当前值
第一题:
str1 = input()
dict1 = {}
for i in str1:
if ('a' <= i <= 'z') or ('A' <= i <= 'Z'):
if i not in dict1.keys():
dict1[i] = 1
else:
dict1[i] += 1
# print(dict1)
# 按键排序
list1 = sorted(dict1.items(), key=lambda d: d[0])
# print(list1)
# 转字典
dict2 = {t[0]: t[1] for t in list1}
print(dict2)
第2题:
list1 = [1, 2, 2, 3, 3, 3, 3, 4, 5]
s = set(list1)
list2 = []
for i in s:
if list1.count(i) > 1:
list2.append(i)
print(list2)
代码如下:
# 问题1 数网址中字母的个数 先大写后小写 并且要按照字母顺序
str = 'http://Google.com'
result = {}
for i in str:
if i.isalpha():
result[i] = str.count(i)
# 按字母顺序排序
r = sorted(result.items())
result = {}
for item in r:
result[item[0]] = item[1]
print(result)
# 问题2 输出列表中的重复值
sample_list = [1, 2, 2, 3, 3, 3, 3, 4, 5]
result = []
# 使用set可以去重,防止遍历重复
for i in set(sample_list):
# 如果个数大于1个
if sample_list.count(i) > 1:
result.append(i)
print(result)