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继承和抽象类的实现方法
Jan 14 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
面向初学者的Python编辑器Mu
Oct 08 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
Django之PopUp的具体实现方法
Aug 31 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
php实现的CSS更新类实例
2014/09/22 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python实现人人网登录示例分享
2014/01/19 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
numpy中索引和切片详解
2017/12/15 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
用python读取xlsx文件
2020/12/17 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
英文演讲稿开场白
2014/08/25 职场文书
报到证办理个人委托书
2014/10/06 职场文书
群众路线专项整治方案
2014/10/27 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
青年联谊会致辞
2015/07/31 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
Java 多线程并发FutureTask
2022/06/28 Java/Android