Python实现list反转实例汇总


Posted in Python onNovember 11, 2014

本文实例总结了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 "<interactive input>", line 1, in ?

    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 "<interactive input>", line 1, in ?

    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程序设计有所帮助。

Python 相关文章推荐
python代码检查工具pylint 让你的python更规范
Sep 05 Python
Unicode和Python的中文处理
Mar 19 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
用python实现面向对像的ASP程序实例
Nov 10 #Python
python求列表交集的方法汇总
Nov 10 #Python
python实现删除文件与目录的方法
Nov 10 #Python
Python装饰器decorator用法实例
Nov 10 #Python
python中list循环语句用法实例
Nov 10 #Python
python中MySQLdb模块用法实例
Nov 10 #Python
Python实现子类调用父类的方法
Nov 10 #Python
You might like
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
JavaScript解析URL参数示例代码
2013/08/12 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
详解node中创建服务进程
2017/05/09 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
在Django的session中使用User对象的方法
2015/07/23 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
python简单贪吃蛇开发
2019/01/28 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
安全检查与奖惩制度
2014/01/23 职场文书
《识字五》教学反思
2014/03/01 职场文书
授权委托书格式模板
2014/04/03 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
兴趣小组活动总结
2014/05/05 职场文书
银行求职自荐书
2014/06/25 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
世界气象日活动总结
2015/02/27 职场文书
重阳节活动主持词
2015/07/04 职场文书
少先队中队工作总结
2015/08/14 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis