欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

list(三)

程序员文章站 2022-04-15 14:11:04
...

一、list去重
当元素可散列(数字,字符串,元组)时直接用set();
当元素不可散列时(列表,字典,集合)时:

new_list=[]
for lis in list:
    if lis not in new_list:
        new_list.append(lis)
     pass

二、找出列表中出现次数最多的元素
利用标准库collections中的Counter类

import collections
print(dir(collections))
words=['p','e','r','d','s','e','w','e','s','a','a']
count=collections.Counter(words)
print(count.most_common(1))
count_str=collections.Counter('iajfkwjotjo4webowhrwqutrvupoeitobeuteyityweoiut0iw39u298yyywiudhgiweg')
print(count_str.most_common(3))

输出:

[('e', 3)]
[('w', 8), ('i', 7), ('o', 6)]

三、列表推导式
列表推导式或者说列表解析式是一种非常简洁的创建列表的方式。很多时候我们需要创建一个满足特定要求的新列表,不得不用for循环来创建,而用列表推导式来表达只需要一行代码即可。列表推导式另一个优点是相比于for循环更高效,因为列表推导式在执行时调用的是Python的底层C代码,而for循环则是用Python代码来执行。
list(三)
列表推导式还可以进行嵌套,如:

a=[[1,2,3,4],[3,21,3,6],[3,4,5,0]]
b=[i[0] for i in a if i[1]>2] #普通推导式
print(b)
c=[[m[i] for m in a] for i in range(4)]  #嵌套推导式,把3*4矩阵变为4*3矩阵
print(c)

输出:

[3, 3]
[[1, 3, 3], [2, 21, 4], [3, 3, 5], [4, 6, 0]]

四、命名切片

a=slice(2,8,2) #给切片命名
lis=[0,1,2,3,4,5,6,7,8]
s=lis[a]
print(s)
print(a.start)
m=lis[2:8:2]
print(m)
相关标签: list