鱼C论坛

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

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

[复制链接]
发表于 2018-1-7 12:04:32 | 显示全部楼层
或者把for循环里面的部分变为:list3=list(set(list2))
list3.sort()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  10. for x in l:
  11.     d[x] += 1

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

  14. print(rs)
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 19:29:11 | 显示全部楼层
在哪里看最佳答案?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

评分

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

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

捕获.PNG

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  12. print(result)
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 15:48:09 | 显示全部楼层
111111111
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 16:21:40 | 显示全部楼层
想知道代码
小甲鱼最新课程 -> https://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 多了一层列表

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 17:32:48 | 显示全部楼层

  1. 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]

  2. #先去重函数用 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]
  3. lists = sorted(list(set(list1)))
  4. listData = []
  5. for i,n in enumerate(lists):
  6.     #查询有个值在列表中出现的次数函数
  7.     listData.append([n,list1.count(n)])

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

  9. #输出结果是: [[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

查看全部评分

小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://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

查看全部评分

小甲鱼最新课程 -> https://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)
小甲鱼最新课程 -> https://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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 02:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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