python基础 任务2

1. 列表

   List是一种有序的集合,可以随时添加和删除其中的元素,里面的元素可以是不同的数据类型。

a. 标志

[ ]

b. 基本操作(创建,append( )pop( ) ,del( ), 拷贝)

#创建
classmates=['Michael','Bob','Tracy']
print('classmates=',classmates)
#list长度
print('classmates的长度:',len(classmates))
#直接获取list最后一个元素、倒数第二个、倒数第三个
print('classmates中的最后一个元素:',classmates[-1])
print('classmates中的倒数第二个元素:',classmates[-2])
print('classmates中的倒数第三个元素:',classmates[-3])

#append()可以往list中追加元素到末尾
#错误 显示 none。append使用后赋值给新变量,classmates_new=classmates.append('Adam')
classmates.append('Adam')
print('在列表结尾加Adam:',classmates)
#insert()可以把元素插入到指定位置
#错误  显示 none。print('在索引号为1的位置加入Jack:',classmates.insert(1,'Jack'))  
classmates.insert(1,'Jack')
print('在索引号为1的位置加入Jack:',classmates)

#pop()删除list末尾的元素
classmates.pop()
print('删除列表中最后一个元素:',classmates)
#pop(i)删除指定位置的元素,根据索引删除,返回删除的元素
a=classmates.pop(2)
print('删除列表中第[2]位的元素:',classmates)
print('删除的元素是:',a)


#del()用于删除列表中的元素,根据索引删除,没有返回值;删除索引范围内的元素或整个列表元素
classmates_test=['Michael','Bob','Tracy','Jack','Adam']
del classmates_test[1]
print('删除新列表第[1]位元素:',classmates_test)
del classmates_test[1:3]
print('删除新列表第[1-3]位元素:',classmates_test)
#remove()用于删除列表中某一确定元素
classmates_test.remove('Michael')
print('删除新列表中的Michael:',classmates_test)
del classmates_test  #删除classmate_test列表


#拷贝  浅/深拷贝在列表对象含子列表时有区别
import copy
origin=['1','2','3',['4','5']]
print('原始列表:',origin)
#错误 显示origin而不显示列表 cop1=copy.copy('origin')    #浅拷贝
cop1=copy.copy(origin)    #浅拷贝
cop2=copy.deepcopy(origin)   #深拷贝
print('浅拷贝cop1:',cop1)
print('深拷贝cop2:',cop2)

origin.append('6')  #不改变子列表
print('浅拷贝cop1:',cop1)
print('深拷贝cop2:',cop2)

origin[3].append('a')  #改变子列表
print('浅拷贝cop1:',cop1)
print('深拷贝cop2:',cop2)

浅拷贝和深拷贝的区别:https://iaman.actor/blog/2016/04/17/copy-in-python

c. 列表相关方法

#列表的其他操作
name=['Michael','Bob','Tracy','Baby']
# 增:
name.insert(2,'wangwei') #列表name的索引为2的位置添加一个元素 wangwei
name.append('Tom') #列表name的末尾,添加一个元素“Tom” 
name.append([1,2,3,4]) #列表name的末尾,添加一个列表
name.extend('abcde') #列表name的末尾,迭代的增加多个元素
print(name)
#迭代着增加:就是数据类型的最小组成单位作为列表的一个元素进行增加
# 删:
name.pop() #按照下标进行删除,默认删除最后一个(有返回值)
name.remove('c') #remove()直接在字符串中查找括号内的元素,并删除
name.clear() #清空列表,使列表变成一个空的
print(name)
del name #直接删除内存文件,导致name这个列表不存在
# 改:
name=['Michael','Bob','Tracy','Baby']
name[0]='x' #通过对索引位置重新赋值,达到更改元素内容的目的
b=name[0:2] #= ['1' , '2', '3'] #更改可切片
print(b)   
#用冒号隔开两个索引值,左边是开始位置,右边是结束位置(不包含该元素)。
#切片也称为拷贝,从原来列表拷贝部分元素,但对原来的列表无影响。
name[0:2] = ['1' , '2', '3'] #更改可切片
# 查:
name = [1,2,3,4,5,6]
print(name[0])#通过下表进行查找元素
name.index(2)#返回列表中该元素第一次出现的索引位置
# 排序和反转:
name.sort()#正向排序,按正确顺序排列
print(name)
name.sort(reverse = True)#反向排序
print(name)
name.reverse() #反转
print(name)
# 列表操作函数:
name = [1,2,3,1,23,1,2]
name.count(1) #计数,通过count统计列表name中,元素 1 出现的次数
len(name) #列表元素个数
max(name) #返回列表元素最大值
min(name)#返回列表元素最小值
seq=(1,2,3)
list(seq)#将元组seq强制转换成列表

for index,value in enumerate(name):#打印元素对应的下标,对一个列表,既要遍历索引又要遍历元素
    print(index,value)

for index,value in enumerate(name,2):#从指定位置开始输出索引位置与元素
    print(index,value)

list中三种删除的方法:https://blog.csdn.net/weixin_42814873/article/details/83377431

2. 元组

a. 标志

()

b. 基本操作(创建及不可变性)

#元组的创建
classmates = ('Michael', 'Bob', 'Tracy') 
#空元组
a=()
print(classmates)
print(a)

len(),max(),min().tuple()

tuple不可变,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0]classmates[-1],但不能赋值成另外的元素。

因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

3. string字符串

a. 定义及基本操作(+*,读取方式)

所有的标准的序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串,但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。

a = 'abc'
b = 'edf'
print(a+b)
print(a*3)
print(a[1])
print(a[0:1])

b. 字符串相关方法

#find 在字符串中查找子串。如果找到,返回子串的第一个字符的索引,否则返回-1
title = 'Monty Python Filying Circus'
title.find('Monty')
title.find('is') 

#join 连接序列中的元素
seq=['1','2','3']  #[1,2,3]为数字列表,['1','2','3']为字符串列表
p='+'
p.join(seq)

#lower 返回字符串的小写字母版
name='Gumby'
names=['gumby','smith','jones']
if name.lower() in names:
    print ('Found it!')
    
#replace 返回某字符串的所有匹配项均被替换之后的得到的字符串
str='This is a test'.replace('is','eez')
print(str)

#split 将字符串分割成序列
env='1+2+3'.split('+')
print(env)

#strip 返回去除两侧(不含内侧)空格的字符串
'  internal is good    '.strip()
'** internal * is good !!'.strip('*!') #删除指定字符 其设为参数

#translate 可以替换

4. 字符串格式化问题

(1) 简单转换 (待补充)

(2)字段宽度和精度(待补充)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值