python 列表 :list 常用函数及实例应用

小伙伴们,周末好哇,可爱的我又出现了🐶

马上就是1024了,以前那么喜欢凑热闹,现在却只愿意一个人安静的在自己温馨的房子里呆着,可能这就是长大的代价吧,不啰嗦了,切入正题,python :list

在交互解释器中输入dir(list)可以看到列表包含的所有方法

['append','clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

该输出结果已经删除了以双下划线开头的方法,按照约定,这些方法具有特殊的意义,不希望被用户直接调用。

扩充列表,向列表添加元素

# -*- coding: utf-8 -*-
name=list("Perl")  #list根据字符串创建列表
name.append('俘虏娃娃')  #只能添加一个元素
name.extend(['竹林消息','迷途知返']) #只能放一个列表
print(name)
> ['P', 'e', 'r', 'l', '俘虏娃娃', '竹林消息', '迷途知返']

name.insert(0,' 哈哈') #放在第一个
print(name)
> [' 哈哈', 'P', 'e', 'r', 'l', '俘虏娃娃', '竹林消息', '迷途知返']


name[1:]=list("ython")  #分片赋值,可以使用与原序列不等长的序列将分片替换
name[1:1]=['w','e']#分片赋值在不需要替换原有元素插入新元素
print(name)
> [' 哈哈', 'w', 'e', 'y', 't', 'h', 'o', 'n']
name[1:3]=[]#插入一个空序列,
print(name)
> [' 哈哈', 'y', 't', 'h', 'o', 'n']

删除元素

a = ['to','be','or','not','to','be']
a.remove('to')#remove方法用于移除列表中某个值的第一个匹配项
print(a)
> ['be', 'or', 'not', 'to', 'be']

del a[1:3]    #删除元素
print(a)
> ['be', 'to', 'be']

a.pop()#pop方法是唯一一个既能修改列表又返回元素值(除none)的列表方法
print(a)
> ['be', 'to']

print(a.index('to'))#index方法用于从列表中找出某个值第一个匹配项的索引位置
print(a.count('to'))#统计某个元素字列表中出现的次数
1
1

排序 

a = [1,3,5,7,2,4,6]
a.reverse()  #改变a的值
print(a)
> [6, 4, 2, 7, 5, 3, 1]

print(list(reversed(a)))   #方向存放,不改变a的值
print(a)
> [1, 3, 5, 7, 2, 4, 6]
> [6, 4, 2, 7, 5, 3, 1]


x = a.sort(reverse=True) #sort方法修改了a的值却返回了空值,从大到小,默认小到大
print(a)
> [7, 6, 5, 4, 3, 2, 1]

a = [10,4,5,2,6,3]
y = sorted(a)  #返回一个列表,并没有修改a的值 
print(a, y) 
> [10, 4, 5, 2, 6, 3] [2, 3, 4, 5, 6, 10]

列表list  元组tuple  字符串string

列表、元组和字符串的共同点

1、都可以通过索引得到每一个元素,默认索引从0开始,可以通过分片得到,具有重复、拼接、成员关系操作符。
2、统称序列。list()把一个可迭代对象转换为列表;tuple()把可迭代对象转换为元组;str(obj)把obj对象转换为字符串

元组和列表:元组不可以改变,创建元组用括号,元组的关键是逗号

temp = (1)   type(temp)   <class 'int'>

temp = 2,3,4              <class 'tuple'>

temp = []                 <class 'list'>

temp = ()                 <class 'tuple'>
    
temp = (1,)               <class 'tuple'>    

8 * (8)           > 64

8 * (8,) ##重复操作符   > (8, 8, 8, 8, 8, 8, 8, 8)

# 插入一个元组元素
temp = ('小虾米','python','忆江南','perl')
temp = temp[:2] + ('灰姑娘',) + temp[2:]##元组的逗号很关键,括号和逗号缺一不可
print(temp)
> ('小虾米', 'python', '灰姑娘', '忆江南', 'perl')


str = "python perl R"
str.join('123')
> '1python perl R2python perl R3'

#将字符串分割成序列
x='1+2+3+4+5'
x.split('+')
> ['1', '2', '3', '4', '5']


y = '/'.join(x)#split方法的逆方法,用来在队列中添加元素,必须是字符串
print(y)
> 1/+/2/+/3/+/4/+/5


str1 = "xxioddmnjkppuy"
str1.find('dd',1,12)#返回字符串所在位置的最左段索引
> 4

#strip()方法返回取出两侧(不包括内部)空格的字符串

实战开始啦:

假设我们有一个文本文件a.txt,是这样的,现在我们先让他按照左边的数字排序:

 

# -*- coding:utf-8 -*-
import re

result=[]
with open('a.txt','r') as f:
    for line in f:
        if re.match(r"(\d+)(\.)",line.strip()):  #符合条件的放在list里
            result.append(line.strip())        
n = len(result)
print(result)
print("--------------------------------------")
def sort(result):   #冒泡排序
    for i in range(n-1):
        for j in range(n-i-1):
            if int(re.search(r"^(\d+)",result[j]).group())>int(re.search(r"^(\d+)",result[j+1]).group()):
                result[j],result[j+1] = result[j+1],result[j]
            elif int(re.search(r"^(\d+)",result[j]).group())==int(re.search(r"^(\d+)",result[j+1]).group()):    #3.8  3.
                if re.match(r"(\d+)(\.)(\D+)",result[j+1]):    #3.哇
                    result[j],result[j+1] = result[j+1],result[j]
                elif re.match(r"(\d+)(\.)(\D+)",result[j]):
                    pass
                elif int(re.search(r"(\.)(\d+)",result[j]).group()[1:])>int(re.search(r"(\.)(\d+)",result[j+1]).group()[1:]): #10.1  10.17
                    result[j],result[j+1] = result[j+1],result[j]
                else:
                    pass
    return result
                    
print(sort(result))

['6.1 保单价值', '6.2 保险费的自动垫交', '1.我们保什么,', '1.1 保险期间,', '1.2 基本保险金额', '1.3 保险责任', '4.2 保险事故通知', '4.3 保险金申请', '4.4 保险金给付', '4.5 失踪处理', '1.4 保障示例', '2.我们不保什么', '2.1 责任免除', '3.3 保险合同成立与生效', '3.4 犹豫期', '4.如何申请领取保险金', '4.6 诉讼时效', '5.如何支付保险费', '5.1 保险费的支付', '6.3 保单贷款', '7.如何恢复合同效力', '7.1 效力中止', '7.2 效力恢复', '8.如何解除保险合同', '8.1 您解除合同的手续及风险', '3.您与我们的合同', '3.1 保险合同构成', '3.2 投保条件', '9.2 明确说明与如实告知', '9.3 我们合同解除权的限制', '9.4 投保年龄', '6.4 加保', '5.2 宽限期', '4.1 受益人', '6.保单价值权益', '9.其他需要关注的事项', '9.1 未还款项', '9.5 年龄性别错误', '9.6 合同内容变更', '9.7 职业或工种变更', '9.8 联系方式变更', '9.9 争议处理', '9.10 货币单位', '10.1 cn', '10. 你的', '10.2 点从北京代表处', '10.17 岁成年']
--------------------------------------
['1.我们保什么,', '1.1 保险期间,', '1.2 基本保险金额', '1.3 保险责任', '1.4 保障示例', '2.我们不保什么', '2.1 责任免除', '3.您与我们的合同', '3.1 保险合同构成', '3.2 投保条件', '3.3 保险合同成立与生效', '3.4 犹豫期', '4.如何申请领取保险金', '4.1 受益人', '4.2 保险事故通知', '4.3 保险金申请', '4.4 保险金给付', '4.5 失踪处理', '4.6 诉讼时效', '5.如何支付保险费', '5.1 保险费的支付', '5.2 宽限期', '6.保单价值权益', '6.1 保单价值', '6.2 保险费的自动垫交', '6.3 保单贷款', '6.4 加保', '7.如何恢复合同效力', '7.1 效力中止', '7.2 效力恢复', '8.如何解除保险合同', '8.1 您解除合同的手续及风险', '9.其他需要关注的事项', '9.1 未还款项', '9.2 明确说明与如实告知', '9.3 我们合同解除权的限制', '9.4 投保年龄', '9.5 年龄性别错误', '9.6 合同内容变更', '9.7 职业或工种变更', '9.8 联系方式变更', '9.9 争议处理', '9.10 货币单位', '10. 你的', '10.1 cn', '10.2 点从北京代表处', '10.17 岁成年']

听说,好看的皮囊千篇一律,有趣的灵魂万里挑一,^_^^_^^_^,仔细想想,美貌与实力我都要,缺一不可啊

哈哈,希望我的例子和注释对大家有所帮助!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值