python 列表基础

一、创建列表

只要把逗号分隔的不同的数据项使用方括号括起来即可。创建列表的元素可以是不同类型。

list1=[]  #创建一个空列表
list2=[1,2,3,4,5] #创建一个带有元素的列表
list3=[1,2,"good",True] #创建的列表可以是不同类型

二、 多维列表

list=[[1,2,3],[4,5,6],[7,8,9]]
list[1]
>>>[4, 5, 6]

list[1][1]
>>>5

三、 列表元素的访问

  1. 取值:与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。
list=[1,2,3,4,5,6,7,8,'a','b','c']

list[2:9]
>>>[3, 4, 5, 6, 7, 8, 'a']

list[15] #注意不要越界,下标不能超出可表示的范围。否则报错
>>>IndexError: list index out of range
  1. 替换
list=[10,20,30,40,50]
list[2]=300
list
>>>[10, 20, 300, 40, 50]

四、 列表操作

1. 列表组合与重复
    list1 = [1,2,3]
    list2 = [4,5,6]
    
    list3 = list1 + list2
    list3
    >>> [1, 2, 3, 4, 5, 6]
    
    list4 = list1 * 3
    list4
    >>> [1, 2, 3, 1, 2, 3, 1, 2, 3]
2. 判断元素是否在列表中
    list = [1,2,3,4,5]
    
    3 in list
    >>> True
    
    6 in list
    >>> False
3. 列表函数方法

(1) list.append() :在列表末尾添加新的元素

list=[1,2,3,4,5]

list.append(6)
list
>>>[1, 2, 3, 4, 5, 6]

list.append([7,8,9])
list
>>>[1, 2, 3, 4, 5, 6, [7, 8, 9]]

(2)list.extend():在列表末尾一次性追加另一个列表中的多个值

list=[1,2,3,4,5,6]
list.extend([7,8,9])
list
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9]  #与append方法不同

list.extend(6)  #追加的必须是一个列表,否则报错
>>>TypeError: 'int' object is not iterable

(3) list.insert():在下标处添加一个元素,不覆盖原数据,原数据向后顺延。

list=[1,2,3,4,5]
list.insert(2,100)
list
>>>[1, 2, 100, 3, 4, 5]

list.insert(2,[200,300])
>>>list
[1, 2, [200, 300], 100, 3, 4, 5]

(4)list.pop():移除列表中指定下标处的元素(默认移除最后一个元素),并返回删除的数据

list=[1,2,3,4,5]
list.pop()
>>>5

list=[1,2,3,4,5]
list.pop(3) #删除的是下标为3的数据。并不是数字3。
>>>4

(5)list.remove():移除列表中的某个元素第一个匹配的结果

list=[1,2,3,4,5,5]
list.remove(5)
list
>>>[1, 2, 3, 4, 5]

(6)list.clear():清除列表中的所有数据

list=[1,2,3,4,5,5]
list.clear()
list
>>>[]

(7)list.index():从列表中找出某个值第一个匹配的索引值

list=[1,2,3,3,4,5,5]
list.index(3)
>>>2

list.index(3,3,5) #后2个元素圈定范围
>>>3

(8)len(list) 列表中元素的个数
(9)max(list) 获取列表中的最大值
(10)min(list) 获取列表中的最小值
(11)list.count() 查看元素在列表中出现的次数

list=[1,2,3,4,5,4,6,7,3,4,5,7]
len(list)
>>>12

max(list)
>>>7

min(list)
>>>1

list.count(3)
>>>2
L1=['a','b','c','aa']
print(max(L1))   #按ASCII码比较
print(max(L1,key=len))  #按字符的长度比较
>>>c
>>>aa

(12)list.reverse() 翻转

list=[1,2,3,4,5,4,6,7,3,4,5,7]
list.reverse()
list
>>>[7, 5, 4, 3, 7, 6, 4, 5, 4, 3, 2, 1]

(13)list.sort() 升序

list=[1,2,3,4,5,4,6,7,3,4,5,7]
list.sort()
list
>>>[1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 7]
4. 拷贝
#浅拷贝
list1=[1,2,3,4,5]
list2=list1
list2[1]=200
print(list1)
print(list2)
[1, 200, 3, 4, 5]
[1, 200, 3, 4, 5]  #2个list都发生了变化

#深拷贝(内存拷贝)
list1=[1,2,3,4,5]
list2=list1.copy()
list2[1]=200
print(list1)
print(list2)
[1, 2, 3, 4, 5]
[1, 200, 3, 4, 5]

在这里插入图片描述

5. 将元组转成列表

小练习

list=[1,2,3,4,5,4,6,7,3,4,5,7,3] #删掉列表中的3

num=1
all=list.count(3)
while num <= all:
    list.remove(3)
    num += 1
print(list)
>>>[1, 2, 4, 5, 4, 6, 7, 4, 5, 7]
list=[1,2,3,4,5,4,6,7,3,4,5,7,3] #找到第二大的值

list=[]
num=0
while num<10:
    val=int(input())
    list.append(val)  #将输入的值存储到列表中
    num+=1
list.sort()  #将列表顺序排序后,把最大的值全部删除,就找到第二大的值

num=0
all=list.count(max(list))  #最大值出现的次数,就用pop()删除几次
while num <all:
    list.pop()
    num += 1
print('第二大的值是%d'%(max(list)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值