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中as用法实例分析
Apr 30 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
Python实现Linux的find命令实例分享
Jun 04 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Pycharm设置界面全黑的方法
May 23 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
Python Collatz序列实现过程解析
Oct 12 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
python3字符串输出常见面试题总结
Dec 01 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
Django路由层如何获取正确的url
Jul 15 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
webpack入门必知必会
2017/01/16 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
python对字典进行排序实例
2014/09/25 Python
python中异常捕获方法详解
2017/03/03 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
对pandas处理json数据的方法详解
2019/02/08 Python
python中温度单位转换的实例方法
2020/12/27 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis