每天努力一点点,坚持下去 ------ 博客首页

Python 列表(List)

什么是 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']
del list[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 = l

print('l的内存地址:',id(l))
print('l2的内存地址:',id(l2))

结果:  l的内存地址: 10758920
          l2的内存地址: 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的内存地址:  11171656
       l2的内存地址: 11140744

  列表生成式:

ll = [1, 2, 3, 4,5]  # 怎么把l变成'12345'
l2 = [str(i)for i in l] #先循环l,把每个元素给到str转化为字符串
for i in l:
    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')#定义元组

 * 定义的元组里面只有一个元素,要在末尾+ 逗号,不然不会是元组。

posted @ 2019-09-09 22:41  他还在坚持嘛  阅读(1297)  评论(0编辑  收藏  举报