python 二维列表去重_Python编码常用套路

1. 循环遍历

if __name__ == '__main__':while True:

2. 录入数据

str1=raw_input()#通过split()将数据分割,并用map(int,list)将其存储

n,k=map(int,str1.split())

str2=raw_input()#分割后利用map将全部数据进行转换

listA=map(int,str2.split())

3. list的去重

#因为set是去重的东西,所以转化成set再转化成list即可

newA = list(set(a))

# 但是二维列表的去重就不一样了,他需要先转化成tuple然后在进行set

reList = list(set([tuple(t) for t in reList]))

reList = [list(v) for v in reList]

4. list的排序

#注意,虽然a.sort()也能进行排序,但是只是针对a排序,要是想存储到另一个list中,还是要使用sorted的

newA=sorted(a)#想要反顺序,那就加一个reverse

newA=sorted(a,reverse=True)

5. 统计数据

#count用来判断这个list里面有多少个该数据

result+=listA.count(0)

6. 二维链表的使用

listA=[]#有时候我们需要二维链表,即一行保存两组数据#利用append来添加数据

listA.append([1,1])#利用pop来删除并获取删除节点数据

s,m=listA.pop(0)

7. 判断链表中是否有元素

#利用len配合pop来做循环

whilelen(listA):#默认是删除并提取最后一个元素

k=listA.pop(0)#也可以利用len来遍历结果

for i inrange(len(listA)):print listA[i]

8. 字符串的拼接

s=1m=2

#利用str转化成String

listA=[str(s), ',', str(m)]#利用join(list)将所有数据整合到一起变成字符串

strA="".join(listA)

9. 判断字典是否存在key值数据

#注意只能得到True和False,不要使用!

if dictionaryA.has_key(strA)==False:print "没有这个数据,可以将其加入进去"

#加入方法直接赋值即可

dictionaryA[strA]="value"

10. 字符串边List

#其实并不难,直接list套上去就行

listStr=list(strA)

11. 将字符串转化成算术式子

#写个函数也不是不可以,但是有就直接用嘛(直接计算完毕的哟)

resultA=eval(strA)

12. 三元运算符

#c中的是 式子?A:B#python中有些不一样 正结果 if 式子 else 负结果

print "\n" if k==len(listA)-1 else ".."

13. python不换行

#使用逗号可以有效解决python2中的换行,使用end=''可以解决python3的换行#但是还是建议import,在python2也能用

from __future__ importprint_function

a='abcd'

print ("%s" %a, end='')

14. List求和求均值

#求和很简单

sumA=sum(listA)#均值利用sum和len即可

meanA=sum(listA)/len(listA)

15. 生成组合结果

importitertools

a=['a','b','a']

b=3

#使用itertools中的product方法 *[a]*b相当于列表a复制b次

listA=[''.join(x) for x in itertools.product(*[a]*b)]#转化成set生成不重复的结果

setA=set(listA)

listNewA=list(setA)#使用 product("abc",repeat=3)这样也可以

#使用permutions能够很快的得到所有的排列组合

strA=map(str,nums)#返回所有的可能值,使用set+随机排列即可

listA=[map(int,list(x)) for x initertools.permutations(strA,len(strA))]returnlistA#其应用实质就是不断的插入,选择一个点插入,在遍历下一个点找位置插入即可

16. 将所有的list中数值数据进行加减操作

from numpy import *listA=[1,2,3,4]#将a转化成array来进行处理

arrayA=array(listA)

arrayNewA=arrayA+4

#再将array转化成list

listNewA=list(arrayNewA)

17. list中的奇数项和偶数项

#奇数的语句

print x[::2]#偶数的语句

print x[1::2]

这里涉及到【a:b:c】格式 a和b表示范围,缺省的话分别表示,头结点和尾结点位置,最后表示步长,缺省为1,所以就有了奇数项和偶数项的定义。

当把步长设定为负数的时候,a的缺省值为-1,b的缺省值为-len(listA)-1,换句话讲,就是从倒数第1个接到到倒数第len(listA)个,因为正常来讲[0:1]表示0一个值,所以[-1:-len(listA)-1]表示了倒着看的全部值。综上所述,使用[::-1]即可完成列表倒序,相当于使用[-1:-len(listA):-1],恩恩,这样就可完全理解了

18. 快速拼接(嵌套的list转换成一维list)

a=[[1,2],[3,4]]#利用sum来就去掉[]

sum(a,[])#或者使用itertools来处理

importitertools#使用itertools.chain.from_iterable来进行并转换成list

out = list(itertools.chain.from_iterable(a))

19. 利用type来判断一个结构

#利用type来判断--主要掌握list、dict即可

listA=[1,2,3,4]if type(listA)==list:print "我是list"

#当然遇到不知道的打印一下就好了

print type(listA)

20. 合并两个list

from numpy import *

#水平进行叠加

a=[1,2,3]

b=[4,5,6]

hstack((a,b))#array([1,2,3,4,5,6])#竖直进行叠加

vstack((a,b))#array([[1,2,3],[4,5,6]])

21. 取整方法<

你可能感兴趣的:(python,二维列表去重)