小伙伴们,周末好哇,可爱的我又出现了🐶
马上就是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 岁成年']
听说,好看的皮囊千篇一律,有趣的灵魂万里挑一,^_^^_^^_^,仔细想想,美貌与实力我都要,缺一不可啊
哈哈,希望我的例子和注释对大家有所帮助!
|