本文实例总结了Python实现list反转的方法。分享给大家供大家参考。具体实现方法如下:
下面有几个不同实现的函数
复制代码 代码如下:import math
def resv(li):
new = []
if li:
cnt = len(li)
for i in range(cnt):
new.append(li[cnt-i-1])
return new
def resv2(li):
li.reverse()
return li
def resv3(li):
hcnt = int(math.floor(len(li)/2))
tmp = 0
for i in range(hcnt):
tmp = li[i]
li[i] = li[-(i+1)]
li[-(i+1)] = tmp
return li
li = [1, 2, 3, 4, 5]
print resv(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 (innermost last):
File \”
ValueError: list.index(x): x not in list
>>> \”c\” in li
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 (innermost last):
File \”
ValueError: list.remove(x): x not in list
>>> 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) for k, v in params.items()]
[\’server=mpilgrim\’, \’uid=sa\’, \’database=master\’, \’pwd=secret\’]
>>> \”;\”.join([\”%s=%s\” % (k, v) for k, v in params.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*2 for elem in li]
[2, 18, 16, 8]
>>> li
[1, 9, 8, 4]
>>> li = [elem*2 for elem in li]
>>> 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\’)]
>>> [k for k, v in params.items()]
[\’server\’, \’uid\’, \’database\’, \’pwd\’]
>>> [v for k, v in params.items()]
[\’mpilgrim\’, \’sa\’, \’master\’, \’secret\’]
>>> [\”%s=%s\” % (k, v) for k, v in params.items()]
[\’server=mpilgrim\’, \’uid=sa\’, \’database=master\’, \’pwd=secret\’]
11.列表过滤
复制代码 代码如下: >>> li = [\”a\”, \”mpilgrim\”, \”foo\”, \”b\”, \”c\”, \”b\”, \”d\”, \”d\”]
>>> [elem for elem in li if len(elem) > 1]
[\’mpilgrim\’, \’foo\’]
>>> [elem for elem in li if elem != \”b\”]
[\’a\’, \’mpilgrim\’, \’foo\’, \’c\’, \’d\’, \’d\’]
>>> [elem for elem in li if li.count(elem) == 1]
[\’a\’, \’mpilgrim\’, \’foo\’, \’c\’]
希望本文所述对大家的Python程序设计有所帮助。