Python基础(list,tuple,dict,set)

本文深入解析Python中list、tuple、dict和set四种数据结构的创建、使用、操作方法及特性,涵盖元素的添加、删除、替换,以及比较、运算符使用等高级技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:list的创建及使用

1:list的创建及访问:

#list的创建及访问:
#(1)正/倒序访问
names = ['Bob','Tracy','Eric']
print(names)  #输出结果:['Bob', 'Tracy', 'Eric']
print(names[1])  #输出结果:Tracy
print(names[-1]) #输出结果:Eric,即倒数第一个

#(2)多类型
L = ['Bob',100,True]  #由于python是动态语言,因此list中可包含多种类型
print(L[1])  #输出结果:100

#(3)空list
EM_L = []  #空list
print(EM_L)  #输出结果:[]

2:list添加、删除、替换元素

#list添加、删除、替换元素

#(1)添加
#方法一:从后添加
L = ['Bob','Tracy','Eric']
L.append('Jim') #向list末尾添加元素
print(L)  #输出结果:['Bob', 'Tracy', 'Eric', 'Jim']

L = ['a','b','c']
#L.append('d','e')  #错误:TypeError: append() takes exactly one argument (2 given)
#print(L)  #append只能添加一个参数
L.extend(['d','e'])  #extend()的参数是一个list
print(L)

#方法二:插入
L.insert(1,'Tom') #在L[1]前添加元素
print(L)  #输出结果:['Bob', 'Tom', 'Tracy', 'Eric', 'Jim']

#(2)删除
#方法一:调用pop()
x = L.pop()  #删除list的最后一个,并返回
print(x)  #输出结果:Jim
#方法二:使用索引
x = L.pop(2)  #删除L[2]
print(x) #输出结果:Tracy

#方法三:remove()
L = ['a','b','c','d','e']
print(L)
L.remove('a')  #要求删除的元素在L中存在
print(L)

#方法4:del
del L[1]  #删除L[1]
print(L)
del L  #直接删除L

#(3)替换
#方法一:先删除再增加(不在解释)
#方法二:通过索引替换
print(L) #输出结果:当前L:['Bob', 'Tom', 'Eric']
L[1] = 'Jerry'  #替换L[1]
print(L) #输出结果:['Bob', 'Jerry', 'Eric']
L[-1] = 'Paul' #也可以用-1做索引
print(L) #输出结果:['Bob', 'Jerry', 'Paul']


#(4)比较
list1 = [123]
list2 = [234]
print(list1 > list2)  #输出False

list1 = [123,456]
list2 = [456,123]
print(list1 > list2)  #输出False,从前向后比较,只要有一个小了,后面就不比较了

#(5)运算符
L = ['a','b','c','d','e',['x','y','z']]
L *= 3
print(L) #输出3次L

print('a' in L)  #输出True
print('x' in L)  #输出False
print(L[5][1])  #输出y

#(6)其他方法
L = ['a','b','a','c','c','d','e',['x','y','z']]
print(L)
print(L.count('a'))  #输出a在L中出现的次数
print(L.index('c'))  #输出c在L中第一次出现的位置
print(L.index('c',2,7))  #输出c在L中的位置,但是是从2-7中找
L.reverse()     #L反转
print(L)
L = [1,2,5,3,7,6]
L.sort()  #默认由小到大排序
print(L)
L.sort(reverse=True) #由大到小排序
print(L)

#(7)list复制
L = ['a','b','a','c','c','d','e']
L0 = L[2:5]  #复制L[2]~L[4]  :左闭右开
L1 = L[:] #默认从头到尾复制一份L,但是开辟新的空间,当L改变时,L1不在改变
L2 = L    #当L改变时,L2也跟着变化,因为内部指针指向同一位置

二:tuple的创建及使用

tuple中文翻译为“元组”,其一旦被创建就不能修改了。创建tuple与list的唯一不同是用( )代替了[ ]。

eg:创建一个tuple t 的方法为:       t = ('Jim','Tom','Jerry')

注意:tuple没有append(),insert(),pop().

另一种不常用表示法:(x,y,z) = (1,2,3)  即x=1,y=2,z=3

#tuple的创建及访问
#(1)空元组
t = () #直接用()表示
print(t) #输出结果:()

#(2)单元组:要多加一个","
t = (1)
print(t)  #输出结果:1,代表一个整数,不是tuple
t = (1,)
print(t)  #输出结果:(1,),表示一个元组

#(3)多元素tuple
t = (1,2,3)  #最后一个”,“有没有效果是一样的
print(t)  #输出结果:(1, 2, 3)

#(4)插入(没有插入的方法,用拼接)
t = (1,2,3,4,5,6,7,8)
nt = t[:2]+(0,)+t[2:]
print(nt)  #通过拼接的方式插入

三:dict的创建及使用

list和tuple用来表示顺序集合,无序集合包括dict和set

1:概念:dict是由key和value值组合的一个无序集合

2:dict定义:使用花括号{ }

#dict的创建及访问
#(1)创建
d={
    'Tom':70,
    'Lisa':80,
    'Bart':90
}
print(d)  #运行结果:{'Tom': 70, 'Lisa': 80, 'Bart': 90}

#(2):求长度
L = len(d)
print(L)  #运行结果:3

#(3)访问
d={
    '123':[4,5,6], #key是str,value是list
    123:'abc', #key是int,value是str
    ('a','b'):True
}
print(d['123']) #运行结果:[4, 5, 6]
print(d[123])  #运行结果:abc

#(4)判断key是否存在
d={
    'Tom':70,
    'Lisa':80,
    'Bart':90,
    'Paul':100
}
#A:用in操作符:
if'Paul'in d:
    print(d['Paul'])

#(5)更新元素
d['Paul'] = 72 #如果之前已存在则替换
print(d['Paul'])  #运行结果:72

#(6)删除元素
del d['Paul']
print(d) #运行结果:{'Tom': 70, 'Lisa': 80, 'Bart': 90}


dict特点:

1:查找速度快,无论10个元素还是10万个元素查找速度都是一样的(代价:占用内存大,浪费很多内容)

2:key不能重复

3:没有顺序,不同机器打印的顺序可能不同

4:元素key必须不可变:基本类型如字符串、整数、浮点数都是不可变的,可作为key,最常用的key还是字符串。但是list可变,就不能作为key。

 

四:set的创建及使用

1:set:元素不会重复的无序

2:定义形式:调用set()函数,并传入一个list,list元素将作为set的元素

3:set查询速度快

4:元素必须是不可变对象

#set的创建及使用
#(1)创建
s = set(['A','B','C'])
print(s)  #输出顺序随机

s = set(['A','B','C','C'])
print(s)  #只输出一个C

#(2)添加/删除元素
s = set([1,2,3])
s.add(4)
print(s) #此时set里有1234
s.remove(3)
print(s) #此时去掉了3
s.pop() #随机删除一个元素
print(s)

#(3)其他
s = set([1,2,5,7,9])
l = len(s)  #求长度
print(l)
s.clear()  #清空
print(s)

#(4)frozenset():不可变集合

 

Python中的list(列表),tuple(元组),dict(字典)和set(集合)是常见的数据结构。 1. 列表(list)是一个可变的、有序的元素集合。可以通过方括号[]来创建一个列表,列表中的元素可以是任意型,并且可以重复。列表提供了丰富的操作方法,如添加元素、删除元素、获取元素等。 2. 元组(tuple)是一个不可变的、有序的元素集合。可以通过小括号()创建一个元组,元组中的元素可以是任意型。元组一旦创建后,不能修改其元素的值。元组通常用于存储不可变的数据,如坐标位置、颜色等。 3. 字典(dict)是一种键值对(key-value)的数据结构。可以通过花括号{}来创建一个字典,字典中的元素是无序的,并且每个元素由一个键和对应的值组成。字典中的键必须是唯一的,而值可以是任意型。字典提供了根据键获取值、添加键值对、删除键值对等操作。 4. 集合(set)是一个无序的、不重复的元素集合。可以通过花括号{}或set()函数来创建一个集合,集合中的元素不能重复。集合提供了并集、交集、差集等常用的数学运算操作,同时还支持元素的添加、删除等操作。 在编程中,根据具体的需求选择使用合适的数据结构能够更高效地处理数据,并且提供相应的操作方法方便开发。以上是对Python中常见的列表、元组、字典和集合的简要介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值