黑猴子的家:python 列表、元组操作

一、列表

列表是我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

1、定义列表

names = ['heihouzidejia',"Tenglan",'Eric']

通过下标访问列表中的元素,下标从0开始计数

>>> names[0]
'heihouzidejia'

>>> names[2]
'Eric'

>>> names[-1]
'Eric'

#还可以倒着取
>>> names[-2] 
'Tenglan'

2、切片:取多个元素

#定义列表
>>>> names = ["heihouzidejia","Tenglan","Eric","Rain","Tom","Amy"] 

#取下标1至下标4之间的数字,包括1,不包括4
>>> names[1:4]  
['Tenglan', 'Eric', 'Rain'] 

 #取下标1至-1的值,不包括-1
>>> names[1:-1]
['Tenglan', 'Eric', 'Rain', 'Tom'] 

#取下标0至3,不包括3
>>> names[0:3] 
['heihouzidejia', 'Tenglan', 'Eric'] 

#如果是从头开始取,0可以忽略,跟上句效果一样
>>> names[:3] 
['heihouzidejia', 'Tenglan', 'Eric'] 

#如果想取最后一个,必须不能写-1,只能这么写
>>> names[3:] 
['Rain', 'Tom', 'Amy'] 

#这样-1就不会被包含了
>>> names[3:-1] 
['Rain', 'Tom'] 

#后面的2是代表,每隔一个元素,就取一个
>>> names[0::2] 
['heihouzidejia', 'Eric', 'Tom'] 

#和上句效果一样
>>> names[::2] 
['heihouzidejia', 'Eric', 'Tom']

3、追加

#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']

#向列表中追加
>>> names.append("我是新来的")

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

4、插入

#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

#向列表中插入数据
>>> names.insert(2,"强行从Eric前面插入")

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

#向列表中插入数据
>>> names.insert(5,"从eric后面插入试试新姿势")

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

5、修改

#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

#修改列表中数据
>>> names[2] = "该换人了"

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

6、删除

#打印一下当前names列表
>>> names
['heihouzidejia', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

#删除列表中的数据
>>> del names[2] 

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

#删除列表中的数据
>>> del names[4]

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

#删除指定元素
>>> names.remove("Eric")

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']

#删除列表最后一个值 
>>> names.pop() 
'我是新来的'

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy']

7、多列表合并

#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy']

#定义列表b
>>> b = [1,2,3]

#把b列表合并到names列表中
>>> names.extend(b)

#再次打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

8、拷贝

#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

>>> name_copy = names.copy()
>>> name_copy
['heihouzidejia', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

copy真的这么简单么?那我还讲个屁。。。

(1)浅copy
浅复制,只复制第一层

#定义C列表
>>> c = [1,2,3,[4,5]]
>>> c
[1, 2, 3, [4, 5]]

#列表copy操作
>>> d = c.copy()

#打印d列表
>>> d
[1, 2, 3, [4, 5]]

#修改c列表
>>> c[0] = 9
>>> c[3][0] = 8

#再次打印c和d列表
>>>c
[9, 2, 3, [8, 5]]
>>>d
[1, 2, 3, [8, 5]]

(2)深 copy

#导入copy包
>>> import copy

e = copy.deepcopy(c)
c[3][0] = 7
print(c)
print(e)

9、统计

#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]

#统计列表里面的Amy数量
>>> names.count("Amy")
2

10、排序&翻转

#打印列表
>>> names
['heihouzidejia', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]

#排序
>>> names.sort() #排序
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str()   #3.X里不同数据类型不能放在一起排序了,擦

#修改列表
>>> names[-3] = '1'
>>> names[-2] = '2'
>>> names[-1] = '3'

#打印列表
>>> names
['heihouzidejia', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']

#排序
>>> names.sort()

#打印已经排序过的列表
>>> names
['1', '2', '3', 'heihouzidejia', 'Amy', 'Amy', 'Tenglan', 'Tom']

#翻转列表
>>> names.reverse() #反转

#打印列表
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'heihouzidejia', '3', '2', '1']

11、获取下标

#打印列表
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'heihouzidejia', '3', '2', '1']

#获取下标
#只返回找到的第一个下标
>>> names.index("Amy")
2 

二、元组

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

names = ("heihouzidejia","jack","eric")

元组,它只有2个方法,一个是count,一个是index,完毕

案例

# 报 error  证明 元组只能读取 ,不能修改添加
names = ('heihouzidejia','heihouzi')
names.append('aaa')

猜你喜欢

转载自blog.csdn.net/weixin_33739523/article/details/87351702