Python实现list反转实例汇总
admin
2023-07-31 02:11:18
0

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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...