Python实现list反转实例汇总_python

本文实例总结了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程序设计有所帮助。

时间: 2024-10-23 22:28:51

Python实现list反转实例汇总_python的相关文章

Python中的列表知识点汇总_python

Python list 在介绍 Python tuple 时,我使用了类比的方法,将其比做一个袋子,您可以在袋子中存放不同的东西.Python list 与此非常类似,因此,它的功能与袋子的功能也非常类似.但有一点是不同的,即您可以使用方括号创建 list,如清单 1 所示. 清单 1. 在 Python 中创建一个 list >>> l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8,

Python中列表(list)操作方法汇总_python

本文实例汇总了Python中关于列表的常用操作方法,供大家参考借鉴.具体方法如下: 一.Python创建列表: sample_list = ['a',1,('a','b')] 二.Python 列表操作: 假设有如下列表: sample_list = ['a','b',0,1,3] 1.得到列表中的某一个值: value_start = sample_list[0] end_value = sample_list[-1] 2.删除列表的第一个值: del sample_list[0] 3.在列表

Python实现端口复用实例代码_python

本文介绍Python实现端口复用实例如下所示: #coding=utf-8 import socket import sys import select import threading host='192.168.99.100' port=80 class Thread(threading.Thread): def __init__(self,buf,sockfd): threading.Thread.__init__(self) self.buf=buf self.sockfd=sockfd

简单谈谈Python中的反转字符串问题_python

按单词反转字符串是一道很常见的面试题.在Python中实现起来非常简单. def reverse_string_by_word(s): lst = s.split() # split by blank space by default return ' '.join(lst[::-1]) s = 'Power of Love' print reverse_string_by_word(s) # Love of Power s = 'Hello World!' print reverse_stri

python中os操作文件及文件路径实例汇总_python

本文实例讲述了python中os操作文件及文件路径的方法.分享给大家供大家参考.具体分析如下: python获取文件上一级目录:取文件所在目录的上一级目录 复制代码 代码如下: os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir)) os.path.pardir是父目录,os.path.abspath是绝对路径 举例具体看一下输出: 复制代码 代码如下: print os.path.dirname(

Python多进程编程技术实例分析_python

本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧.分享给大家供大家参考.具体分析如下: 一般来说,由于Python的线程有些限制,例如多线程不能充分利用多核CPU等问题,因此在Python中我们更倾向使用多进程.但在做不阻塞的异步UI等场景,我们也会使用多线程.本篇文章主要探讨Python多进程的问题. Python在2.6引入了多进程的机制,并提供了丰富的组件及api以方便编写并发应用.multiprocessing包的组件Process, Queue, P

python中的多重继承实例讲解_python

python和C++一样,支持多继承.概念虽然容易,但是困难的工作是如果子类调用一个自身没有定义的属性,它是按照何种顺序去到父类寻找呢,尤其是众多父类中有多个都包含该同名属性. 对经典类和新式类来说,属性的查找顺序是不同的.现在我们分别看一下经典类和新式类两种不同的表现: 经典类: 复制代码 代码如下: #! /usr/bin/python # -*- coding:utf-8 -*- class P1():     def foo(self):         print 'p1-foo' c

python中的多线程实例教程_python

本文以实例形式较为详细的讲述了Python中多线程的用法,在Python程序设计中有着比较广泛的应用.分享给大家供大家参考之用.具体分析如下: python中关于多线程的操作可以使用thread和threading模块来实现,其中thread模块在Py3中已经改名为_thread,不再推荐使用.而threading模块是在thread之上进行了封装,也是推荐使用的多线程模块,本文主要基于threading模块进行介绍.在某些版本中thread模块可能不存在,要使用dump_threading来代

python类继承用法实例分析_python

本文实例讲述了python类继承用法.分享给大家供大家参考.具体方法如下: #!/usr/bin/python # Filename: inherit.py class SchoolMember: '''Represents any school member.''' def __init__(self, name, age): self.name = name self.age = age print'(Initialized SchoolMember: %s)'% self.name def