python的两个问题

img


题1要求数网址中字母的个数 先大写后小写 并且要按照字母顺序 我不知道怎么删去一些字母之外的字符 正确的输出结果见图上 我写的如图下

img


img


题2要求输出形式是列表[2,3] 我不知道要怎么改 我的输出结果如图下

img


#问题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)