列表和元组都是Python中常见的数据类型。

列表和元组都是一个可以存放任意类型数据(可重复)的有序集合。

列表可变,可以随意增加、删除、修改其中的元素;元组不可变,一旦初始化就不能进行修改。

1.列表list

Python中列表用中括号[]表示,列表中的元素用逗号(,)隔开。

列表可以存储多个数据,且数据可以是不同类型,并且可重复。

(1)查找

同字符串一样,列表可以通过索引查询其中元素。

li1 = ['张三', 1, '王五', None, '李四', 3.6, True]
print(li1[2])               #王五
print(li1[1:4])             #[1, '王五', None]
print(li1[:3])              #['张三', 1, '王五']

index()可以查询指定元素的索引。

index(元素, 起始索引, 结束索引)可指定索引范围查找指定元素,范围包含起始索引,不包含结束索引。

查询的元素不在列表中,则会报错。ValueError: xxx is not in list

li1 = ['张三', 1, '李四', '王五', None, 1, '李四', 3.6, True]
print(li1.index(1))                 #1
print(li1.index('张三'))              #0
print(li1.index(None))              #4
print(li1.index('李四', 3, 7))        #6

count():统计指定元素在列表中出现的次数。

li1 = ['张三', 1, '李四', '王五', None, 1, '李四', 3.6, True]
print(li1.count('李四'))      #2

len():获取列表的长度,即列表中元素的个数。

li1 = ['张三', 1, '李四', '王五', None, 1, '李四', 3.6, True]
print(len(li1))     #9

列表的遍历:

通常用for循环遍历列表中的元素:

li1 = ['张三', '李四', '王五', '赵六']
for name in li1:
    print(name)

 

(2)增加

往列表中添加元素。

append():往列表结尾追加元素。

li1 = ['张三', '李四', '王五']
li1.append('赵六')
print(li1)            #['张三', '李四', '王五', '赵六']
li2 = [1, '李四']
li1.append(li2)
print(li1)           #['张三', '李四', '王五', '赵六', [1, '李四']]

insert():往列表指定索引位置添加元素。

li1 = ['张三', '李四', '王五']
li1.insert(0, 3.1)      #0是索引,3.1是要添加的元素,把3.1添加到列表最左边
print(li1)              #[3.1, '张三', '李四', '王五']

extend():将一个序列中所有元素逐个添加到列表结尾。

li1 = ['张三', '李四', '王五']
li1.extend([1, '张三'])
print(li1)          #['张三', '李四', '王五', 1, '张三']

(3)删除

 删除列表中的元素。

pop():删除指定索引的元素,并返回该元素。不指定索引时,默认删除最后一个元素。

li1 = ['张三', '李四', '张三', '王五']
print(li1.pop())    #王五
print(li1)          #['张三', '李四', '张三']
#li1此时为['张三', '李四', '张三']
li1.pop(0)          #删除li1索引0对应的元素
print(li1)          #['李四', '张三']

remove():删除指定元素。若列表中不存在该元素,则报错:ValueError: list.remove(x): x not in list

li1 = ['张三', '李四', '张三', '王五']
li1.remove('张三')   
print(li1)          #['李四', '张三', '王五']

clear():清空列表中所有元素。

li1 = ['张三', '李四', '张三', '王五']
li1.clear()    
print(li1)          #[]

Python中的del函数也可以用来删除列表或列表中的元素。

li1 = ['张三', '李四', '张三', '王五', '赵六']
del li1[0]
print(li1)          #['李四', '张三', '王五', '赵六']
del li1[:2]
print(li1)          #['王五', '赵六']
del li1             #删除了li1对变量的引用,并删除了变量名li1,所以下面语句会报错
print(li1)          #NameError: name 'li1' is not defined

(4)修改

修改列表的元素。

通过索引可以直接修改:

li1 = ['张三', '李四', '张三', '王五', '赵六']
li1[2] = '张三三'
print(li1)          #['张三', '李四', '张三三', '王五', '赵六']

reverse():将列表中的元素逆置。

li1 = ['张三', '李四', '王五', '赵六']
li1.reverse()
print(li1)          #['赵六', '王五', '李四', '张三']

sort():对列表中的元素进行排序,默认按升序排列。reverse = True 表示降序。字符串按首个字符ASCII码进行排序。

li1 = [1, 3, 6, 2, 5, 4]
li2 = li1
li3 = ['b', 'c', 'exx', 'a', '你好']
li1.sort()
li3.sort()
print(li1)      #[1, 2, 3, 4, 5, 6]
print(li2)      #[1, 2, 3, 4, 5, 6]
print(li3)      #['a', 'b', 'c', 'exx', '你好']
li1.sort(reverse=True)
print(li1)      #[6, 5, 4, 3, 2, 1]

copy():复制一个列表

li1 = [1, 3, 6, 2, 5, 4]
li2 = li1.copy()
li1.sort()
print(li1)      #[1, 2, 3, 4, 5, 6]
print(li2)      #[1, 3, 6, 2, 5, 4]

 

2.元组tuple

元组和列表相似,用小括号()表示,元组中的元素也用逗号隔开。

和列表不同的是:元组不可变,不能进行修改;元组中只有一个元素时,也要在该元素后面加一个逗号,否则不表示元组,而是该元素本身。

a = ('你好')
print(type(a))  #<class 'str'>
b = ('你好',)
print(type(b))  #<class 'tuple'>

元组tuple的查找操作同列表list一样。

通过索引查找:

tu1 = ('张三', '李四', '王五', '赵六', '李四', '张三', '李四')
print(tu1[3])               #赵六
print(tu1[1:4])             #('李四', '王五', '赵六')

index():

tu1 = ('张三', 1, '李四', '王五', None, 1, '李四', 3.6, True)
print(tu1.index(1))                 #1
print(tu1.index('张三'))              #0
print(tu1.index(None))              #4
print(tu1.index('李四', 3, 7))        #6

count():

tu1 = ['张三', 1, '李四', '王五', None, 1, '李四', 3.6, True]
print(tu1.count('李四'))      #2

len():

tu1 = ['张三', 1, '李四', '王五', None, 1, '李四', 3.6, True]
print(len(tu1))     #9

元组的遍历同列表一样,通常用for循环。

 

posted on 2023-04-01 13:13  木去  阅读(389)  评论(0)    收藏  举报