Python基础03 数据类型(2)列表、元组、字典

本文详细介绍了Python中的列表、元组和字典的语法构造、常用方法以及它们的特点,包括添加、删除、查找和操作元素的各种函数。

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

一、列表(list)

1、语法构造

例:li = [1,3,‘ab’]
(1)列表的元素可以是数字、字符串、列表等任何类型。
(2)列表元素有顺序,且可以被修改。

2、常用的方法

(1)append() 原来值最后追加

li = [1,3,'ab']
li.append(33)
print(li)       #[1, 3, 'ab', 33]

(2)clear() 清空列表

li = [1,3,'ab']
li.clear()
print(li)       #[]

(3)copy() 浅拷贝

li = [1,3,'ab']
v = li.copy()
print(v)       #[1, 3, 'ab']
l1 = [1,2,["a",[11,12]]]

# 赋值
l2 = l1
l2[1] = 20
print(l1)   # [1, 20, ['a', [11, 12]]]
# 赋值会使两个变量指向同一个对象

# 浅拷贝
l3 = l1.copy()
l3[1] = 200
l3[2][0] = "b"
print(l1)   # [1, 20, ['b', [11, 12]]]
# 浅拷贝的变量指向的对象为:复制原对象的一级元素,但该一级元素仍然指向原对象的二级元素

# 深拷贝
import copy

l4 = copy.deepcopy(l1)
l4[0] = "A"
l4[2][0] = "B"
l4[2][1][0] = "C"
print(l4)   # ['A', 20, ['B', ['C', 12]]]
print(l1)   # [1, 20, ['b', [11, 12]]]
# 深拷贝的变量指向的对象是:复制原对象所有层级的元素

(4)count() 计算元素出现的次数

li = [1,3,'ab',3]
v = li.count(3)
print(v)       #2

(5)extend() 扩展原列表,参数:可迭代对象

li = [1,3,'ab',3]
linew = li.copy()
li1 = [22,'ss']
li.append(li1)
print(li)       #[1, 3, 'ab', 3, [22, 'ss']]
linew.extend(li1)
print(linew)    #[1, 3, 'ab', 3, 22, 'ss']

(6)index() 根据值获取当前值索引位置(左边优先)

li = [1,3,'ab',3]
v = li.index(3)
print(v)    #1

(7)insert() 在指定索引位置插入元素

li = [1,3,'ab',3]
li.insert(1,'abc')
print(li)    #[1, 'abc', 3, 'ab', 3]

(8)pop() 删除某个值(1.指定索引;2. 默认最后一个),并获取删除的值

li = [1,3,'ab',3]
v = li.pop()
print(li,v)    #[1, 3, 'ab'] 3

(9)remove() 删除列表中的指定值,左边优先

li = [1,3,'ab',3]
li.remove(3)
print(li)    #[1, 'ab', 3]

del li[2]   #也可以用关键字 del 删除
print(li)   #[1, 'ab']

(10)reverse() 将当前列表进行翻转

li = [1,3,'ab',3]
li.reverse()
print(li)    #[3, 'ab', 3, 1]

(11)sort() 列表的排序

li = [7,3,10,3]
linew = li.copy()
li.sort()
print(li)        #[3, 3, 7, 10]

linew.sort(reverse=True)
print(linew)    #[10, 7, 3, 3]
words = ['apple', 'banana', 'orange', 'kiwi']

# 使用字符串长度作为键进行排序
words.sort(key=len)

print(words)
# ['kiwi', 'apple', 'banana', 'orange']

3、其他特性

可以索引、切片

li = [7,3,10,3]

print(li[2])        #索引 10
print(li[1:-1])     #切片 [3, 10]

注:切片是生成一个新对象,但二级元素仍然指向原对象。

l1 = [1,2,[3],4]

l2 = l1[1:-1]

print(l2)	# [2, [3]]
l2[1][0]=10
l2[0] = "A"

print(l2)	# ['A', [10]]
print(l1)	# [1, 2, [10], 4]

二、元组(tuple)

1、语法构造

例:tu = (11,22,‘aa’,44,)
其中,
(1)元组的元素有序,可以是数字、字符串、列表等任何类型。
(2)例子中最后的逗号可以不写,不过作为与形参的区分,推荐写。
(3)一级元素不可被修改,不能被增加或者删除

2、元组的方法

(1)count() 获取指定元素在元组中出现的次数

tu = (11,22,44,22)
v = tu.count(22)
print(v)    #2

(2)index() 获取参数所在的索引

tu = (11,22,44,22)
v = tu.index(22)
print(v)    #1

3、索引、切片

tu = (11,22,44,22)
v1 = tu[1]
v2 = tu[0:3]
print(v1,v2)    #22 (11, 22, 44)

三、字典(dict)

1、语法构造

例:
dic = {
“key1”: ‘value1’,
“key2”: ‘value2’
}
注:
(1)key值为不变的值,如数字、字符串、元组
(2)value值可以为任意类型
(3)字典元素是无序的

2、常用的方法

(1)fromkeys() 根据序列,创建字典,并指定统一的值

v = dict.fromkeys(["k1",123,"999"],123)
print(v)    #{'k1': 123, 123: 123, '999': 123}

(2)get() 根据key值获取value值;key不存在时,可以指定默认值(默认None)

dic = {
    "key1": 'value1',
    "key2": 'value2'
}
v1 = dic.get('key')
print(v1)       #None
v2 = dic.get('key1','value3')
print(v2)       #value1
v3 = dic.get('ke3','value3')
print(v3)       #value3

(3)pop() 根据key值,删除并获取值。如果没有该key值,可以获得指定获取值。

dic = {
    'key1': 'value1',
    'key2': 'value2',
    111: 222
}
v1 = dic.pop('key2')    #{'key1': 'value1', 111: 222} value2
print(dic,v1)
v2 = dic.pop('1','aa')  #{'key1': 'value1', 111: 222} aa
print(dic,v2)

(4)setdefault() 设置值。已存在,不设置,获取当前key对应的值。不存在,设置,获取当前key对应的值。

dic = {
    'key1': 'value1',
    'key2': 'value2',
}
v1 = dic.setdefault('key1','aa')
print(dic,v1)          #{'key1': 'value1', 'key2': 'value2'} value1
v2 = dic.setdefault('key3','aa')
print(dic,v2)          #{'key1': 'value1', 'key2': 'value2', 'key3': 'aa'} aa

(5) update() 更新元素数据

dic = {
    'key1': 'value1',
    'key2': 'value2',
}
dic.update({'key1':11,'key3':22})
print(dic)          #{'key1': 11, 'key2': 'value2', 'key3': 22}
dic.update(k1='aa',k2='bb')
print(dic)          #{'key1': 11, 'key2': 'value2', 'key3': 22, 'k1': 'aa', 'k2': 'bb'}

(6)keys()、values()、items() 获取key值/value值/key和value值。其中下面代码中,不写后面的方法,默认循环取key值。

dic = {
    'key1': 'value1',
    'key2': 'value2',
}
for k in dic.keys():
    print(k)
'''
key1
key2
'''
for v in dic.values():
    print(v)
'''
value1
value2
'''
for k,v in dic.items():
    print(k,v)
'''
key1 value1
key2 value2
'''

3、其他特性

(1)可以用索引方式找到指定元素,但索引值为key值。例:
dic['key1]
(2)可以用del删除元素,例:
del dic[‘key1’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值