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 相关文章推荐
Django admin美化插件suit使用示例
Dec 12 Python
Python方法的延迟加载的示例代码
Dec 18 Python
python实现log日志的示例代码
Apr 28 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
Python常用编译器原理及特点解析
Mar 23 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
使用Python构造hive insert语句说明
Jun 06 Python
python中os.remove()用法及注意事项
Jan 31 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
一个PHP二维数组排序的函数分享
2014/01/17 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
jQuery实现3D文字特效的方法
2015/03/10 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
ES6的新特性概览
2016/03/10 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
JS中的多态实例详解
2017/10/15 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
用Python写一段用户登录的程序代码
2018/04/22 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
pandas如何处理缺失值
2019/07/31 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python各层级目录下import方法代码实例
2020/01/20 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
护理专业的自荐信
2013/10/22 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
公积金单位接收函
2014/01/11 职场文书
绿色城市实施方案
2014/03/19 职场文书
课外小组活动总结
2014/08/27 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫
MySQL创建管理子分区
2022/04/13 MySQL