Python学习笔记之列表和元组

列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作,以[]标识,中间用逗号隔开

names = ['aa',"bb",'cc'] #names变量用列表来赋值

列表索引以0开头

names = ['aa',"bb",'cc','dd','ee']
print(names[0])#aa
print(names[-1])#ee
print(names[:-1])#['aa', 'bb', 'cc', 'dd']
print(names[:])#['aa', 'bb', 'cc', 'dd', 'ee']
print(names[1:3])#['bb', 'cc']顾头不顾尾
print(names[1::2])#['bb', 'dd']步长为2

append()追加,可以是任意参数,作用是往已有列表中添加元素,如果添加的是列表,就被当成一个元素存在原列表中,只使list长度增加1.

names = ['aa',"bb",'cc','dd','ee']
#names.append('ff')
print(names)#['aa', 'bb', 'cc', 'dd', 'ee', 'ff']
names.append(["d1","d2"])
print(names)#['aa', 'bb', 'cc', 'dd', 'ee', ['d1', 'd2']]

insert()插入 insert(index,obj)列表与方法之间用点号相隔,括号内需要添入的参数分别是索引和要插入的元素

names = ['aa',"bb",'cc','dd','ee']
names.insert(2,"a1")
print(names)#['aa', 'bb', 'a1', 'cc', 'dd', 'ee']

修改

names = ['aa',"bb",'cc','dd','ee']
names[2]="a1"
print(names)#['aa', 'bb', 'a1', 'dd', 'ee']

删除

names = ['aa',"bb",'cc','dd','ee']
方式1 del:
del names[2]
print(names)#['aa', 'bb', 'dd', 'ee']
方式2 remove:
names.remove("cc")
print(names)#['aa', 'bb', 'dd', 'ee']

方式3 pop:
names.pop()
print(names)#['aa', 'bb', 'cc', 'dd']默认是删除最后一个,指定索引就删除对于索引的元素
这里按索引
names.pop(2)
print(names)#['aa', 'bb', 'dd', 'ee']

扩展extend

names = ['aa',"bb",'cc','dd','ee']
aa = [1,2,3]
names.extend(aa)
print(names,aa)#['aa', 'bb', 'cc', 'dd', 'ee', 1, 2, 3] [1, 2, 3]

复制copy

names = ['aa',"bb",'cc','dd','ee']
names2 = names.copy()
print(names2)#['aa', 'bb', 'cc', 'dd', 'ee']
copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。
    首先直接上结论:
    —–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。
    —–而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。
        对于简单的 object,用 shallow copy 和 deep copy 没区别
        复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未从原 object 真的「独立」出来。也就是说,如果你改变原 object 的子 list 中的一个元素,你的 copy 就会跟着一起变。这跟我们直觉上对「复制」的理解不同。
names = ['abc','def',["baby",22]]
print(names)
names2= names.copy()#跟copy.copy(names)等价
names[2][0] = "BaBy"
print(names)#['abc', 'def', ['BaBy', 22]]
print(names2)#['abc', 'def', ['BaBy', 22]] 这个是浅copy
import copy
names = ['abc','def',["baby",22]]
print(names)
names3 = copy.deepcopy(names)
names[2][0] = "BaBy"
print(names)#['abc', 'def', ['BaBy', 22]]
print(names3)#['abc', 'def', ['baby', 22]]这个是深copy

按照最外层的来修改,也可看成是简单的对象
names = ['abc','def',["baby",22]]
print(names)
names3 = copy.copy(names)
names[2] = ['BaBy', 22]
print(names)#['abc', 'def', ['BaBy', 22]]
print(names3)#['abc', 'def', ['baby', 22]]
 

计数count

names = ['aa',"bb",'cc','dd','aa']
names2 = names.count("aa")
print(names2)#2

清空clear

names = ['aa',"bb",'cc','dd','aa']
names.clear()
print(names)#[]

排序sort、reverse

names = ['1aa',"Cbb",'1cc','dd','aa']
names.sort()
print(names)#['1aa', '1cc', 'Cbb', 'aa', 'dd']按照ASCII码表的顺序来排序
names2 = ['aa',"bb",'cc','dd','ee']
names2.reverse()
print(names2)#['ee', 'dd', 'cc', 'bb', 'aa']

下标index

names = ['aa',"bb",'cc','dd','ee']
print(names.index('bb'))#1
元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

names = ('aa',"bb",'aa','dd','ee')
print(names.count("aa"))#2
print(names.index('bb'))#1



转载于:https://www.cnblogs.com/fenny0907/p/7392221.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值