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实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
解读python如何实现决策树算法
Oct 11 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
Python版中国省市经纬度
Feb 11 Python
python实现小程序推送页面收录脚本
Apr 20 Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 Python
python中os.path.join()函数实例用法
May 26 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 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 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
Gird事件机制初级读本
2007/03/10 Javascript
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
python遍历类中所有成员的方法
2015/03/18 Python
使用python实现个性化词云的方法
2017/06/16 Python
浅谈Python中的私有变量
2018/02/28 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
工作散漫检讨书
2014/09/16 职场文书
前台岗位职责
2015/02/13 职场文书
2015年度女工工作总结
2015/10/22 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android