Python列表、元组、字典说明——第三天

本文深入探讨了Python中的数据结构,包括列表、元组、字典等的创建、修改及各种操作方法,如append、clear、copy等,并解析了它们的特点与应用场景。

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

1、列表
(1)创建列表:li = [1,2,3,4]
(2)列表中可以嵌套任意字符

li = [1,2,"age",[123,["蛋糕","asdf"],"lalala"],True]
print(li[3][1][0])

#输出结果:蛋糕

(3)列表可以被修改,可以通过切片对列表进行修改删除操作

li = [1,2,"age",[123,["蛋糕","asdf"],"lalala"],True]
li[0:2] = [["a",666],"test1"]
print(li)

(4)列表可以进行for循环
(5)列表和字符串一样,可以使用in判断元素是否在内
(6)获取列表中的具体数值

li = [134,"ssffg","gegt",["fjhgh",90,99],90,True]
v = li[3][0][1]
print(v)

#输出结果:j

(7)字符串可以直接转换成列表,数字不可以。
解释:遍历列表相当于内部进行for循环,因为数字不可以进行for循环。

(8)列表转换成字符串,需要自己写for循环一个一个处理。

li = [1,2,3,666,"888","alex"]
s = ""
for i in li:
    s = s + str(i)
print(s)

#输出结果:123666888alex

(9)只有字符串的列表转换成字符串的时候,可以用join

li = ["123","alex"]
v = "".join(li)
print(v)

#输出结果:123alex

2、列表的魔法
list和str一样,ctrl点击就可以查看其魔法。和字符串不同的是,列表可修改。
(1)append()——魔法:后面可追加列表、数字、字符串。但是每次最后只能跟一个参数,否则会报错。

li = [11,22,33,44]
li.append("fjfh")
li.append([00])
li.append(12345)
print(li)

#输出结果:[11, 22, 33, 44, 'fjfh', [0], 12345]

(2)clear():魔法——清空列表,清空后返回[]

li = [11,22,33,44]
li.clear()
print(li)

#输出结果:[]

(3)copy():魔法——复制列表

li = [11,22,33,44]
v = li.copy()
print(v)

#输出结果:[11,22,33,44]

(4)count():魔法——计算元素出现的次数
(5)index():魔法——获取当前值索引的位置,最左边优先,找到第一个就不再找了
(6)insert(index,p_object):魔法——在指定索引的位置添加元素

li = [11,22,33,44]
li.insert(0,99)
print(li)

#输出结果:[99, 11, 22, 33, 44]

(7)pop():魔法——默认删除列表中最后一个值,删除后可以查看被删除的元素,还可以指定删除某个索引的值

默认删除最后一个:
li = [11,22,33,44]
v = li.pop()
print(li)
print(v)

#输出结果:
[11, 22, 33]
44
删除指定的索引位置
li = [11,22,33,44]
li.pop(0)
print(li)

#输出结果:[22, 33, 44]

(8)remove():魔法——)删除指定索引值
del也是删除 试试del li[0:3]

#remove删除
li = [11,22,33,44]
li.remove(li[0])
print(li)

#输出结果:[22, 33, 44]
#del删除
li = [11,22,33,44]
del li[0:3]
print(li)

#输出结果:[44]

(9)extend():魔法——扩展,字符串会分开显示出来

li = [11,22,33,44]
li.extend("今天是个好日子")
print(li)

#输出结果:[11, 22, 33, 44, '今', '天', '是', '个', '好', '日', '子']

(10)reverse():魔法——将当前列表进行反转,但是不可以赋值

li = ["123",66]
li.reverse()
print(li)

#输出结果:[66, '123']
#赋值报错

li = ["123",66]
v = li.reverse()
print(v)

#输出结果:None

(11)sort():魔法——排序,默认从大到小,sort(reverse=True)从小到大

#默认排序

li = [89,66,99,89,12,10]
li.sort()
print(li)

#输出结果:[10, 12, 66, 89, 89, 99]
从大到小排序
li = [89,66,99,89,12,10]
li.sort(reverse=True)
print(li)

#输出结果:[99, 89, 89, 66, 12, 10]

3、元组

**注意:**为了区分元组和方法,在创建元组时最后面加一个逗号,输出时逗号不会显示。

tu = (123,456,"dsrf","",)
print(tu)

#输出结果:(123, 456, 'dsrf', '')

(1)元组支持切片。

tu = (123,456,"dsrf","",)
print(tu[0:2])

#输出结果:(123, 456)

(2)元组的一级元素不可修改,但是如果元素包含列表,列表中的值可以修改。

tu = (123,456,"dsrf","",[(33,44)],True,)
tu[4][0] = 666
print(tu)

#输出结果:(123, 456, 'dsrf', '', [666], True)

(3)tuple只有两个方法,count()和index(),语法和上面一样

4、字典
(1)字典(dict)的创建规则:info = {“key”:“value”} ,里面职业名词称为键值对,值可以是任意内容,可以被修改的不能作为字典的key,例如列表,bool可以作为字典的key,其中True和1相同。列表中两个key值相同只保留一个,默认第一个。

#实例:
info ={
    "age":"18",
    "name":"小明",
    "guoji":"China",
    "li":[
        11,
        22,
        33,
        44,
        [],
        (),
        {
           "k1":"v1",
            "k2":"v2",
            "k3":"v3"
        }
    ],
    "test":(1,2,3,4)
}
print(info)

#输出结果:{'age': '18', 'name': '小明', 'guoji': 'China', 'li': [11, 22, 33, 44, [], (), {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}], 'test': (1, 2, 3, 4)}

(2)字典是无序的。
(3)字典可以根据索引找,不支持切片。
(4)字典可以进行for循环,默认输出key的值,还可以手动输出value的值,又可以key值和value值一起输出,还可以根据key值输出vaule的值。

#
默认输出为key值

info ={
    "age":"18",
    "name":"小明",
    "guoji":"China",
}
for item in info:
    print(item)


#输出结果:
age
name
guoji

#(2)手动输出key的值

info ={
    "age":"18",
    "name":"小明",
    "guoji":"China",
}

for item in info.keys():
    print(item)

#输出结果:
age
name
guoji
#(3)手动输出key和value的值——第一种方法

info ={
    "age":"18",
    "name":"小明",
    "guoji":"China",
}

for item in info.keys():
    print(item,info[item])
 
 
#输出结果:
age 18
name 小明
guoji China
#手动输出key和value的值——第二种方法
info ={
    "age":"18",
    "name":"小明",
    "guoji":"China",
}

for k,v in info.items():
    print(k,v)
#根据key值输出vaule的值

info ={
    "age":"18",
    "name":"小明",
    "guoji":"China",
}
print(info["age"])


#输出结果:18

(5)fromkeys():魔法——创建字典,给key赋予统一的value值

x = {
    "k1":"v1"
}
y = x.fromkeys(["k1","k2","k3"],"v666")
print(y)


#输出结果:{'k1': 'v666', 'k2': 'v666', 'k3': 'v666'}

(6)get():魔法——获取key对应的value值,当没有key时,输出None,当key不存在,且后面跟着value,会直接输出该value,如下

x = {
    "k1":"v1"
}
y = x.get("k1")
z = x.get("hhh")
w = x.get("lll","fhsksgjgdf")
print(y)
print(z)
print(w)

#输出结果:
v1
None
fhsksgjgdf

(7)pop():魔法——删除字典中指定的值,可见删除元素

x = {
    "k1":"v1",
    "k2":"v2",
}
y = x.pop("k1")
print(x,y)

#输出结果:{'k2': 'v2'} v1

(8)popitem():魔法——默认删除最后一组键值对,()里不跟任何参数

x = {
    "k1":"v1",
    "k2":"v2",
    "k3":"v3",
    "k4":"v4",
}
y = x.popitem()
print(x,y)

#输出结果:{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} ('k4', 'v4')

(9)setdefault():魔法——设置键值对,如果字典中有,则不变,如果没有,则新建键值对,不输入value默认为None.

#key值已存在

x = {
    "k1":"v1",
    "k2":"v2",
}
y = x.setdefault("k1",666)
print(x,y)

#输出结果:{'k1': 'v1', 'k2': 'v2'} v1
#key值不存在

x = {
    "k1":"v1",
    "k2":"v2",
}
y = x.setdefault("kkk",666)
print(x,y)

#输出结果:{'k1': 'v1', 'k2': 'v2', 'kkk': 666} 666

(10)update():魔法——更新key的value值,如果key不存在,则创建新的。支持等于写法,如下。

#key值存在,则修改

x = {
    "k1":"v1",
    "k2":"v2",
}
x.update({"k1":666})
print(x)

#输出结果:{'k1': 666, 'k2': 'v2'}
#key值不存在,则创建

x = {
    "k1":"v1",
    "k2":"v2",
}
x.update({"k3":888})
print(x)

#输出结果:{'k1': 'v1', 'k2': 'v2', 'k3': 888}
#支持直接赋值

x = {
    "k1":"v1",
    "k2":"v2",
}
x.update(k1=123,k2=456,k3=888)
print(x)

#输出结果:{'k1': 123, 'k2': 456, 'k3': 888}

(11)dict.get()
为了防止字典里取值,该值不存在,尽量用dict.get()来代替dict[key]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值