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代码来执行。
列表推导式还可以进行嵌套,如:
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)
下一篇: AngularJS表单和输入验证实例