什么是 list
Python内置的一种数据类型是列表(list),也叫作数组。
list是一种有序的集合,可以随时添加和删除其中的元素,可以存储任意数据类型的集和。
list取元素是按照下标取值的,也可以叫做索引或是角标,下标是以0开始的,例如:s1的下标是0,取值的话是:list[0]。
list = ['s1','s2',1,'hello']
list 里面可以是整形,浮点数,复数,布尔类型,也可以是字符串。
列表元素的增加:
变量.append(“想要加入的元素”)
——在末尾增加一个元素
list = ['s1','s2',1,'hello']
list.append('666')
print(list)#在list的末尾增加一个元素
['s1', 's2', 1, 'hello', '666']
在指定的位置添加:
变量.insert(想要指定的位置下标,“想要插入的元素”)
——如果指定的位置不存在,就会插入到最后
list = ['s1','s2',1,'hello']
list.insert(4,'大白')#在指定的位置插入元素,
# 如果指定的下标不存在,那么会把元素插入到最后
print(list)
['s1', 's2', 1, 'hello', '大白']
查询:
list = ['s1','s2',1,'hello']
print('单个取',list[0])
print('最后一个元素',list[-1])
单个取: s1
最后一个元素: hello
修改:
list = ['s1','s2',1,'hello']
list[3] = '大哈' #指定下标,想要更改为什么等于号里面就写什么
print('改之后的',list)
改之后的 ['s1', 's2', 1, '大哈']
删除:
#pop默认删除list里面最后一个元素
list = ['s1','s2',1,'hello']
list.pop(3) #指定下标的元素会删除
print('删除之后:',list)
删除之后: ['s1', 's2', 1]
#删除指定的位置的元素
list = ['s1','s2',1,'hello']dellist[0]print('删除之后:',list)
删除之后: ['s2', 1, 'hello']
#根据元素的名称删除
list = ['s1','s2',1,'hello']
list.remove('hello')print('删除之后:',list)
删除之后: ['s1', 's2', 1]#1、删除的指定的元素,如果list里面有多个一样的元素,那么只会删掉一个#2、删除的指定的元素,如果list里面不存在,就会报错
其他常用方法:
(1)某个元素在list里面的数量
list = ['s1','s2',1,'hello','hello']
count= list.count('hello')print('count方法:',count)
count方法:2
(2)清空list
list = ['s1','s2',1,'hello','hello']
clear=list.clear()print('clear方法:',clear)
clear方法: None
(3)复制
list = ['s1','s2',1,'hello','hello']
new_list=list.copy()print('copy方法:',new_list)
copy方法: ['s1', 's2', 1, 'hello', 'hello']
(4)反转
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers.reverse()print('reverse方法:',numbers)
reverse方法: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
(6)排序
#从小到大排序
numbers = [9,23,12,234,23,5235,235,235,23523,523]
numbers.sort()print('sort方法',numbers)
sort方法: [9, 12, 23, 23, 234, 235, 235, 523, 5235, 23523]
#从大到小排序
numbers= [9,23,12,234,23,5235,235,235,23523,523]
numbers.sort(reverse=True) #加上reverse=True
print('sort方法:',numbers)
sort方法: [23523, 5235, 523, 235, 235, 234, 23, 23, 12, 9]
(7)把一个list的元素,加入到另外一个list里面
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers2= ['a','b','c','d']
numbers.extend(numbers2)print('extend方法:',numbers)
sort方法: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'a', 'b', 'c', 'd']
(8)找某个元素的下标
list = ['s1','s2',1,'hello']
index= list.index('hello')print('index的方法:',index)
index的方法:3
(9)拆包
list = [1,2,3]
a,b,c= list #拆包,123给到abc
(10)浅拷贝---内存地址不变
l = [1,2,3,4,5,6]
l2=lprint('l的内存地址:',id(l))print('l2的内存地址:',id(l2))
结果: l的内存地址:10758920l2的内存地址:10758920
(11)深拷贝---内存地址会变
import copy #使用到copy模块
l = [1,2,3,4,5,6]
l2=l
l2= copy.deepcopy(l) #深拷贝
print('l的内存地址:',id(l))print('l2的内存地址:',id(l2))
结果: l的内存地址:11171656l2的内存地址:11140744
列表生成式:
ll = [1, 2, 3, 4,5] #怎么把l变成'12345'
l2 = [str(i)for i in l] #先循环l,把每个元素给到str转化为字符串
for i inl:
l2.append(str(i))print(l2)print(''.join(l2))
l3 = [i for i in range(10) if i%2==0 ] #可以在后边加if判断条件 %是除号
print(l3)#结果:[0, 2, 4, 6, 8]
等同于如下代码:
l3 = []
for i in range(10):
i%2==0
l3.append(i)
元组
元组其实和列表一样,不一样的是,元组的值不能改变,一旦创建,就不能再改变了,比如说,要存数据库的连接信息,这个连接信息在程序运行中是不能被改变的,如果变了那数据库连不上了,程序就完了,这样的就可以使用元组了,元组呢,也提示别人,看到是元组的话,就说明这个值是不能被改变的,元组的定义方式是用(),小括号;元组只有两个方法,那就是count和index
mysql_coon = ('192.168.1.109','root','123456',3306,'my_db')#定义元组
* 定义的元组里面只有一个元素,要在末尾+ 逗号,不然不会是元组。