Python实现list反转实例汇总
本文实例总结了Python实现list反转的方法。分享给大家供大家参考。具体实现方法如下:
下面有几个不同实现的函数
importmath defresv(li): new=[] ifli: cnt=len(li) foriinrange(cnt): new.append(li[cnt-i-1]) returnnew defresv2(li): li.reverse() returnli defresv3(li): hcnt=int(math.floor(len(li)/2)) tmp=0 foriinrange(hcnt): tmp=li[i] li[i]=li[-(i+1)] li[-(i+1)]=tmp returnli li=[1,2,3,4,5] printresv(li)
ps:resv2()方法会改变原来list的排序,其它则不会
一些关于list基础用法
1.定义list
>>>li=["a","b","mpilgrim","z","example"] >>>li ['a','b','mpilgrim','z','example'] >>>li[0] 'a' >>>li[4] 'example'
2.负的list索引
>>>li ['a','b','mpilgrim','z','example'] >>>li[-1] 'example' >>>li[-3] 'mpilgrim' >>>li ['a','b','mpilgrim','z','example'] >>>li[1:3] ['b','mpilgrim'] >>>li[1:-1] ['b','mpilgrim','z'] >>>li[0:3] ['a','b','mpilgrim']
3.向list中增加元素
>>>li ['a','b','mpilgrim','z','example'] >>>li.append("new") >>>li ['a','b','mpilgrim','z','example','new'] >>>li.insert(2,"new") >>>li ['a','b','new','mpilgrim','z','example','new'] >>>li.extend(["two","elements"]) >>>li ['a','b','new','mpilgrim','z','example','new','two','elements']
4.搜索list
>>>li ['a','b','new','mpilgrim','z','example','new','two','elements'] >>>li.index("example") 5 >>>li.index("new") 2 >>>li.index("c") Traceback(innermostlast): File"<interactiveinput>",line1,in? ValueError:list.index(x):xnotinlist >>>"c"inli False
5.从list中删除元素
>>>li ['a','b','new','mpilgrim','z','example','new','two','elements'] >>>li.remove("z") >>>li ['a','b','new','mpilgrim','example','new','two','elements'] >>>li.remove("new") >>>li ['a','b','mpilgrim','example','new','two','elements'] >>>li.remove("c") Traceback(innermostlast): File"<interactiveinput>",line1,in? ValueError:list.remove(x):xnotinlist >>>li.pop() 'elements' >>>li ['a','b','mpilgrim','example','new','two']
remove从list中删除一个值的首次出现。
remove仅仅删除一个值的首次出现。在这里,'new'在list中出现了两次,但li.remove("new")只删除了'new'的首次出现。
如果在list中没有找到值,Python会引发一个异常来响应index方法。
pop会做两件事:删除list的最后一个元素,然后返回删除元素的值。
6.list运算符
>>>li=['a','b','mpilgrim'] >>>li=li+['example','new'] >>>li ['a','b','mpilgrim','example','new'] >>>li+=['two'] >>>li ['a','b','mpilgrim','example','new','two'] >>>li=[1,2]*3 >>>li [1,2,1,2,1,2]
7.使用join链接list成为字符串
>>>params={"server":"mpilgrim","database":"master","uid":"sa","pwd":"secret"} >>>["%s=%s"%(k,v)fork,vinparams.items()] ['server=mpilgrim','uid=sa','database=master','pwd=secret'] >>>";".join(["%s=%s"%(k,v)fork,vinparams.items()]) 'server=mpilgrim;uid=sa;database=master;pwd=secret'
join只能用于元素是字符串的list;它不进行任何的类型强制转换。连接一个存在一个或多个非字符串元素的list将引发一个异常。
8.分割字符串
>>>li=['server=mpilgrim','uid=sa','database=master','pwd=secret'] >>>s=";".join(li) >>>s 'server=mpilgrim;uid=sa;database=master;pwd=secret' >>>s.split(";") ['server=mpilgrim','uid=sa','database=master','pwd=secret'] >>>s.split(";",1) ['server=mpilgrim','uid=sa;database=master;pwd=secret']
split与join正好相反,它将一个字符串分割成多元素list。
注意,分隔符(“;”)被完全去掉了,它没有在返回的list中的任意元素中出现。
split接受一个可选的第二个参数,它是要分割的次数。
9.list的映射解析
>>>li=[1,9,8,4] >>>[elem*2foreleminli] [2,18,16,8] >>>li [1,9,8,4] >>>li=[elem*2foreleminli] >>>li [2,18,16,8]
10.dictionary中的解析
>>>params={"server":"mpilgrim","database":"master","uid":"sa","pwd":"secret"} >>>params.keys() ['server','uid','database','pwd'] >>>params.values() ['mpilgrim','sa','master','secret'] >>>params.items() [('server','mpilgrim'),('uid','sa'),('database','master'),('pwd','secret')] >>>[kfork,vinparams.items()] ['server','uid','database','pwd'] >>>[vfork,vinparams.items()] ['mpilgrim','sa','master','secret'] >>>["%s=%s"%(k,v)fork,vinparams.items()] ['server=mpilgrim','uid=sa','database=master','pwd=secret']
11.列表过滤
>>>li=["a","mpilgrim","foo","b","c","b","d","d"] >>>[elemforeleminliiflen(elem)>1] ['mpilgrim','foo'] >>>[elemforeleminliifelem!="b"] ['a','mpilgrim','foo','c','d','d'] >>>[elemforeleminliifli.count(elem)==1] ['a','mpilgrim','foo','c']
希望本文所述对大家的Python程序设计有所帮助。