列表、元组与字典

列表、元组与字典

列表

  • 定义:是可变的序列,也是一种可以存储各种数据类型的集合,用中括号[]表示开始和结束,元素之间用’,'分割。列表为每个元素提供一个对应的下标

基本表示

test1 = []
len(test1) # 0

test2 = [1,2,3,4,5]
len(test2) # 5
print(test2) # [1,2,3,4,5]

可以存放不同数据类型的元素成员

tests = ['A','B','C']
text  = [1,2,tests]
len(text) # 3
print(text) #  [1,2,['A','B','C']]
print(text[0]) # 1:支持按下标访问

列表基本操作

append
  • 在列表尾部添加元素,无论列表是否非空;可在尾部添加单个元素,如字符、数字等,也可以是列表、元组等
lists = []
lists.append(1)
print(lists) # [1]
listss = [2]
lists.append(listss)
print(listss) # [1,[2]]
insert
  • append方法只能在最后添加,insert()方法可以在任意一个位置添加元素
#在append基础上继续
lists.insert(0,'A')
print(lists) # ['A', 1, [2]]	
lists.insert(1,'B')
print(lists) # ['A', 'B', 1, [2]]
  • 如果insert插入的元素下标越界,默认插入到最后
lists.insert(100,'C')
print(lists) # ['A', 'B', 1, [2], 'C']
index
  • L.index(value,[start[,stop]]),其中value为待查找的元素,start为从列表中开始查找的下标数,stop为查找结束的下标数。若查到,返回从左到右第一个元素与value相等的下标,若未查到返回ValueError信息。
lists = ['Tom',1,2,3,1]
lists.index('Tom') # 0
lists.index(1) # 1 (返回第一个下标)
lists.index(1,2) # 3 (从下标2开始查找1元素)
in
  • 判断指定元素是否在列表中(好处是不会产生出错信息)
lists = ['Tom',1,2,3,1]
'a' in lists # False
读取
  • 下标读取(注意越界错误)
lists = ['Tom',1,2,3,1]
lists[2] # 2
  • 切片读取
lists = ['Tom',1,2,3,1]
lists[1:] # [1,2,3,1]
修改
  • 与字符串相比,列表可修改,灵活性更高
lists = ['Tom',1,2,3,1]
lists[0] = 'Jack'
print(lists)
clear
  • 清空列表所有元素,使列表变成空列表
lists = [1,2,3,4,5]
len(lists) # 5
lists.clear()
len(lists) # 0
print(lists) # []
pop
  • L.pop([index]),L表示列表对象,index为可选参数;当指定该参数时,从index位置弹出并删除对应元素;否则默认从表尾弹出并删除一个元素
lists = ['A','B','C']
one = lists.pop()
print(one,' ',lists) # C ['A','B']
two = lists.pop(0)
print(two,' ',lists) # A ['B']
lists.pop(2) # 越界错误
remove
  • L.remove(value)删除列表中值为value的元素,若有多个删除最左边的那个。若value不存在,报错
lists = [1,2,3]
lists.remove(2)
print(lists) # [1,3]
del
  • 可以用来删除列表中指定的元素,也可以删除整个列表对象
lists = [1,2,3,4]
del(lists[2]) # [1,2,4]
del lists
lists # 报错
合并
l1 = [1,2,3]
l2 = [4,5,6]
l1.extend(l2) #合并用extend
print(l1) # [1,2,3,4,5,6]

也可以

l1 = [1,2,3]
l2 = [4,5,6]
l1 = l1 + l2
print(l1)

两者不同之处是用’+'会导致l1内存地址变化,相当于l1被合并后被重新定义了。而采用extend()方法,不会导致对象地址变化。

sort
  • L.sort(key = None,reverse = False),L为列表对象;key为可选参数,用于指定在作比较之前,调用何种函数对列表元素进行处理,如key = str.lower表示在比较之前把所有字母转为小写;reverse为可选参数,若为True表示降序排序
fruit = ['banana','pear','apple','peach']
fruit1 = fruit.copy()
fruit1.sort()
print(fruit1) # ['apple', 'banana', 'peach', 'pear']
fruit.sort(reverse = True)
print(fruit) # ['pear', 'peach', 'banana', 'apple']

❓sort和sorted区别

sort是修改自己本身,sorted是生成一个新的排序过的列表

copy
  • L.copy()形成一个和原本列表内容相同的新的列表对象
  • 赋值方法与之不同的是赋值方法指向的地址是相同的
count
  • L.count(e)统计列表中e的数量
reverse
  • L.reverse()将列表反转,反转前后列表地址不变
列表解析
Nums = [i **2 for i in range(11) if i > 0]
# 等价于
Nums = []
for i in range(11)
	Nums.append(i ** 2)

元组

  • 定义:是不可变的序列,也是一种可以存储各种数据类型的集合

与列表区别

  • 元组不能对其元素进行变动,而列表允许
  • 元组用小括号表示(()),而列表用中括号([])表示

基本用法

test1 = ()
len(test1) # 0
test2 = (1,2,2,'1','a') #可重复,多类型
test3 = (1)
type(test3) # int

当元组变量赋值一个元素时,不能用上述方式,Python会把1两边的括号看作数学公式的括号,结果为1。若给元组赋值一个元素,并消除小括号歧义,则

test3 = ('1',)
type(test3) # tuple
print(test3) # ('1',)

省略小括号的元组定义及应用

>>name,age = 'tom',19
>>(name,age) # ('tom',19)
>>name,age # ('tom',19)
>>test4 = ('A',10)
>>name1,age1 = test4
>>name1 # 'A'
>>age1 # 10

元组基本操作

“添加”元素
  • 元组定义了不能改变,需要添加元素只能重新定义
tuple = (1,2,3)
tuple1 = tuple + (4,)
index
  • 同列表index
count
  • 同列表count
删除元组
  • del tuple
合并元组
  • t3 = t1 + t2
转换元组
list1 = ['A','B','C']
l_to_t = tuple(list1)
type(l_to_t) # tuple
t_to_l = list(l_to_t)
type(t_to_l) # list

字典

  • 定义:字典是可变的无序集合,同时是一种键值对为基本元素的可以存储各种数据类型的集合,用{}表示字典的开始和结束,中间用’,'分割

基本用法

d1 = {'tom':29,'jack':41}
len(d1) # 2
键值设置要求
  • 唯一性:一个字典对象里所有的键必须唯一
d3 = {1:'car',2:'bus',2:'bus'}
len(d3) # 2
print(d3) # {1:'car',2:'bus'} 相同键值对元素只保留一个
d4 = {1:'car',2:'bus',2:'train'}
len(d4) # 2
print(d4) # {1:'car',2:'train'} 保留最后一个键值对元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值