鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

[技术交流] Python:每日一题 133

[复制链接]
发表于 2018-1-7 12:04:32 | 显示全部楼层
或者把for循环里面的部分变为:list3=list(set(list2))
list3.sort()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 04:21:07 | 显示全部楼层
l = [
    12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16,
    19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18,
    16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12,
    2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5,
    1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3
]

d = dict.fromkeys(set(l), 0)
rs = []

for x in l:
    d[x] += 1

for k, v in d.items():
    rs.append([k, v])

print(rs)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 19:25:40 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
list_ = []
list4 = []
def count_(i):
    for i in list1:
        a = list([i,list1.count(i)])
        list_.append(a)
        list_.sort()
    list2 = list_
    for n in list2:
        if n not in list4:
            list4.append(n)        
    return list4   
count1 = count_(12)
print(count1)
用的最笨的方法,回复只是先看看其他大神的答案

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 19:29:11 | 显示全部楼层
在哪里看最佳答案?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 20:20:01 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18,
         2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0,
         0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1,
         12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2,
         9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14,
         18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15,
         3, 16, 20, 18, 4, 18, 16, 3]
list2=[]
list3=[]
n=0
list2=set(list1)
for i in list2:
    n=list1.count(i)
    list3.append([i,n])
print(list3)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 20:57:28 | 显示全部楼层
l_chongdu = []
l = []
l1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
for num in l1:
    if num not in l_chongdu:
        l_chongdu.append(num)
        l.append([num,l1.count(num)])
print sorted(l)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 11:19:58 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17,
6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16,
 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18,
 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
a = collections.Counter(list1)
c = [i for i in a.keys()]
b = [i for i in a.values()]
a = list(zip(c, b))#实现排序,根据key值排序
a.sort()
print([list(i) for i in a])

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3 import没有写

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 13:30:55 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3,
         18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0,
         12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4,
         14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12,
         18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1,
         13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
list2 = [[a,list1.count(a)] for a in range (max(list1)+1) if a in list1 ]
捕获.PNG

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 14:33:30 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6,\
         16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, \
         18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7,\
         2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14,\
         18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, \
         18, 16, 3]
result = []

list1_differ = list(set(list1))#去掉列表中的重复项
list1_differ.sort()#对新生成的列表进行排序
for each in list1_differ:
    result.append([each,list1.count(each)])

print(result)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 15:48:09 | 显示全部楼层
111111111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 16:21:40 | 显示全部楼层
想知道代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 16:26:40 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]        

myset=set(list1)
list2=[[] for x in range(len(myset))]  

for i in myset:
    list2[i].append([i,list1.count(i)])
   
print(list2)

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
冬雪雪冬 + 2 + 2 多了一层列表

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 16:52:21 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10,
         6, 10, 0, 4, 3, 18, 2, 18, 17, 6,
         16, 19, 12, 18, 4, 4, 16, 12, 13,
         11, 0, 0, 12, 7, 10, 2, 7, 12, 4,
         18, 13, 18, 16, 17, 14, 12, 1, 12,
         4, 14, 8, 18, 4, 12, 10, 1, 18, 7,
         2, 9, 3, 11, 12, 2, 9, 13, 12, 18,
         15, 1, 9, 5, 11, 6, 12, 9, 16, 14,
         18, 0, 15, 4, 17, 5, 1, 13, 0, 10,
         0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]

print(len(list1))
print(max(list1))
list2_d=[0]
for l in range(0,max(list1)+1):
    n=0
    for i in range(0,len(list1)):
        if list1[i] == l:
             n=n+1
        else :
             n=n
    list2_d[l]=list([l,n])
    if l !=20:
        list2_d.append([l,n])
    else:
        break
print(list2_d)
   

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 17:04:58 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10,
         6, 10, 0, 4, 3, 18, 2, 18, 17, 6,
         16, 19, 12, 18, 4, 4, 16, 12, 13,
         11, 0, 0, 12, 7, 10, 2, 7, 12, 4,
         18, 13, 18, 16, 17, 14, 12, 1, 12,
         4, 14, 8, 18, 4, 12, 10, 1, 18, 7,
         2, 9, 3, 11, 12, 2, 9, 13, 12, 18,
         15, 1, 9, 5, 11, 6, 12, 9, 16, 14,
         18, 0, 15, 4, 17, 5, 1, 13, 0, 10,
         0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]

list2_d = [0]
for i in range(max(list1)):
    m = list1.count(i)
    list2_d[i]=list([i,m])
    if i != 20:
        list2_d.append([i,m])
    else:
        pass
print(list2_d)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 17:32:48 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]

#先去重函数用 list(set(list1)) 排序函数用sorted()  结果输出结果是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
lists = sorted(list(set(list1)))
listData = []
for i,n in enumerate(lists):
    #查询有个值在列表中出现的次数函数
    listData.append([n,list1.count(n)])

print('输出结果是:',listData)

#输出结果是: [[0, 7], [1, 6], [2, 4], [3, 5], [4, 8], [5, 2], [6, 4], [7, 3], [8, 2], [9, 4], [10, 5], [11, 3], [12, 11], [13, 4], [14, 3], [15, 3], [16, 8], [17, 3], [18, 11], [19, 3], [20, 1]]

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 17:48:24 | 显示全部楼层
本帖最后由 wenjiew 于 2018-1-10 17:49 编辑

from collections import defaultdict
def solutions(list1):
        list2 = defaultdict(int)
        for elements in list1:
                list2[elements] += 1
        return [item for item in sorted(list2.items())]

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 17:49:22 | 显示全部楼层
wenjiew 发表于 2018-1-10 17:48
def solutions(list1):
        list2 = defaultdict(int)
        for elements in list1:

在开头加一个from collections import defaultdict
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 18:57:22 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4,
         14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]


list2 = list(set(list1))
list2.sort()
arr = [[x, list1.count(x)] for x in list2]
print(arr)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 20:49:39 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
max1 = max(list1)
min1 = min(list1)
a=[]
c=[]
for i in list1:
    b = list1.count(i)
    a.append(b)
for each in list1:
    if each not in c:
        c.append(each)
d = list(map(lambda x,y:[x,y],c,a))
d.sort()
print(d)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 20:52:18 | 显示全部楼层
list1 = [12, 1, 3, 19, 0, 1, 16, 8, 19, 10, 6, 10, 0, 4, 3, 18, 2, 18, 17, 6, 16, 19, 12, 18, 4, 4, 16, 12, 13, 11, 0, 0, 12, 7, 10, 2, 7, 12, 4, 18, 13, 18, 16, 17, 14, 12, 1, 12, 4, 14, 8, 18, 4, 12, 10, 1, 18, 7, 2, 9, 3, 11, 12, 2, 9, 13, 12, 18, 15, 1, 9, 5, 11, 6, 12, 9, 16, 14, 18, 0, 15, 4, 17, 5, 1, 13, 0, 10, 0, 6, 16, 15, 3, 16, 20, 18, 4, 18, 16, 3]
a=[]
c=[]
for i in list1:
    b = list1.count(i)
    a.append(b)
for each in list1:
    if each not in c:
        c.append(each)
d = list(map(lambda x,y:[x,y],c,a))
d.sort()
print(d)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 04:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表