VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python02-字符编码、字符串格式化、进制转化、数据类型、列表、元组、字典总结(2)

3.改  修改:

想要修改首先得用切片把相应的值取出来,在进行赋值即可。

代码示例:

list = ["one","two",3,4,"five"]
list[1] = 2   #将索引值为1的对象取出来,再重新赋值
print(list)

输出结果:

['one', 2, 3, 4, 'five']

需求:将list = ["one","two",3,4,"five"]这个列表里的two 和 4 修改成 2 和 four

代码示例:

list = ["one","two",3,4,"five"]
list[1:4:2] = [2,"four"]
print(list)

输出结果:

['one', 2, 3, 'four', 'five']

注意:在list[1:4:2] = [2,"four"]中,因为list[1:4:2]输出得是一个列表,所以等号右边也必须是个列表

4.删 删除:

4.1:remove

remove只能删除一个,并且()里填写的是对象内容

代码示例:

list = ["one","two",3,4,"five"]
list.remove("two")     #删除two
print(list)

输出结果:

['one', 3, 4, 'five']

4.2 :pop 

pop删除的时候()里是填写索引值,并且还可以将删除数据返回出来,如果括号里面不填索引值,即pop(),则默认删除最后一个值。

代码示例:

list = ["one","two",3,4,"five"]
a = list.pop(1)    #删除 two
print(list,a)

输出结果:

['one', 3, 4, 'five'] two

4.3 :del什么都可以删除

代码示例:

list = ["one","two",3,4,"five"]
del list[0]    #删除 one
print(list)

输出结果:

['two', 3, 4, 'five']

5.列表的其他操作

5.1 :count:计算某元素出现次数

代码示例:

list = ["one","two",3,4,"five"]
v = list.count("two")   #计算two出现的次数
print(v)

输出结果:

1

5.2:extend:用于在列表末尾一次性追加另一个序列中的多个值,括号中必须是可迭代对象,可以理解为批量的append()

代码示例:

a = [1,2,3]
b = [4,5,6]
a.extend(b)     #把b加到a里面
print(a)
print(b)

输出结果:

[1, 2, 3, 4, 5, 6]

[4, 5, 6]

5.3:index根据内容找位置,输出得是第一个匹配内容的索引位置

代码示例:

list = ["one","two",3,4,"five"]
T = list.index("five")      #查找five的索引值
print(T)

输出结果:

4

5.4 合集

1.reverse:用于反向列表中元素

2.sort:对原列表进行排序

reverse -- 排序规则,reverse = True 降序(由大到小), reverse = False 升序(由小到大)(默认)

3.in:查一个数据在不在列表内

4.type:身份判断:判断一个对象是不是列表

代码示例:

复制代码
list0 = ["one","two",str(3),str(4),"five"]
list0.reverse()             #反向列表中元素
print(list0)
list0.sort(reverse=True)    #由大到小de对原列表进行排序
print(list0)
a = "six" in list0         #判单six在不在列表里
print(a)
b = type(list0) is list     #判断list0是不是列表
print(b)
复制代码

输出结果:

['five', '4', '3', 'two', 'one']

['two', 'one', 'five', '4', '3']

False

True

6.列表练习题:

list = ["one","two",3,4,"five","天才"]

把list列表中的天才的 天 改成 蠢

代码示例:

list = ["one","two",3,4,"five","天才"]
v = list[5].replace("","")
list[5] = v
print(list)

输出结果:

['one', 'two', 3, 4, 'five', '蠢才']

注意:字符串不能通过索引值修改,只能通过索引值取出来。(⬇)

7.补充:

需求:索引为奇数值,删除
注意:删除列表元素时,会影响列表长度,从而使得索引取值时,容易出现错误。

复制代码
li = [11,22,33,44,66]
# 解决方案一:
li = [11, 22, 33, 44, 66] # 0
new_list = []
for i in range(0,len(li)):
    if i%2 == 0:
        new_list.append(li[i])
li = new_list
print(li)

# 解决方案二:
 li = [11, 22, 33, 44, 66] # 0
 for i in range(len(li)-1,-1,-1): # 4,0
    if i%2 == 1:
        del li[i]
print(li)

#解决方案三:切片+步长
li = [11, 22, 33, 44, 66] 
del li[0:4:2]
print(li)        
复制代码

七.元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

1. 创建空元组

tup1 = ()

2. 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

代码示例:

tup1 = (50)
print(type(tup1))     # 不加逗号,类型为整型
tup1 = (50,)
print(type(tup1))     # 加上逗号,类型为元组

输出结果:

<class 'int'>

<class 'tuple'>

3. 元组可以使用下标索引来访问元组中的值

4. 可以对元组进行连接组合

5.元组可以计算长度len()

6.元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

7.重点:

元组的儿子不能修改,但是孙子可以,元组的元素不能修改,但是元组的元素的元素是可以修改的。

代码示例:

tuple1 = ("one","two","three",[1,2,"zrh"],(1,2,3),"four")
tuple1[3][1] = 3
print(tuple1)
tuple1[3].append("q")
print(tuple1)

输出结果:

('one', 'two', 'three', [1, 3, 'zrh'], (1, 2, 3), 'four')

('one', 'two', 'three', [1, 3, 'zrh', 'q'], (1, 2, 3), 'four')

八.字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对,用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变类型。

不可变类型:整型、字符串、元组

可变类型:字典、列表

格式:变量名 = {键:值,键:值}

代码示例:

dict1 = {
    "name":"zrh",
    "age":20,
    "height":75
}

1.:dict.get

1.1通过键取值

代码示例:

dict1 = {
    "name":"zrh",
    "age":20,
    "height":75
}
print(dict1.get("name"))

输出结果:

zrh

1.2()参数,如果键不存在,就用后面的结果当作默认值。

代码示例:

dict1 = {
    "name":"zrh",
    "age":20,
    "height":75
}
print(dict1.get("key",999))

输出结果:

999

2.:dict.keys() 、 dict.values() and dict.items()

经常和for循环一起使用

字典在for循环的时候尽量不要用两个变量去分别接收 键 和 值,这样会造成内存负荷过大,可以先遍历键,然后通过键去找值

代码示例:

复制代码
dict1 = {
    "name":"zrh",
    "age":20,
    "height":75
}
a = dict1.keys()         #查看所有键
print(type(a))           #查看a的类型
print(a)
print(dict1.values())    #查看所有值
print(dict1.items())     #查看所有键值对
复制代码

输出结果:

<class 'dict_keys'>

dict_keys(['name', 'age', 'height'])

dict_values(['zrh', 20, 75])

dict_items([('name', 'zrh'), ('age', 20), ('height', 75)])

for循环注意事项:

复制代码
1 dict1 = {}
2 for key in dict1:
3     pass
4 for key in dict1.items():
5     pass
6 for key in dict1.keys():
7     pass
8 for key in dict1.values():
9     pass
复制代码

注意dict1后面括号的有无

3.增加键值对

代码示例:

复制代码
dict1 = {
    "name":"zrh",
    "age":20,
    "height":75
}
dict1["hobby"] = "eat"
print(dict1)
复制代码

输出结果:

{'name': 'zrh', 'age': 20, 'height': 75, 'hobby': 'eat'}

如果增加的键已经存在,那就是改的功能。

4.删除

代码示例:

复制代码
dict1 = {
    "name":"zrh",
    "age":20,
    "height":75
}
del dict1["name"]     #删除指定键值对
print(dict1)
dict1.clear()
print(dict1)         #清空字典中所有键值对,但空字典还存在
dict2 = {
    "name":"zrh",
    "age":20,
    "height":75
}
a = dict2.pop("name")    #通过键去删除,并可以返回相应的值
print(a)
print(dict2)
b = dict2.popitem()
print(b)
print(dict2)            #随机删除一对键值对,并且返回相相应键值对
复制代码

输出结果:

{'age': 20, 'height': 75}

{}

zrh

{'age': 20, 'height': 75}

('height', 75)

{'age': 20}

5.嵌套

字典里面可嵌套字典或者列表都可以,列表页都可以嵌套字典。

在修改时,遇到字典用键,遇到列表用索引值,然后查找出来之后赋值即可,其他操作一样,反正一句话:

遇到字典用键,遇到列表用索引值。

6.update()用于将括号中的键值对添加到目标对象中,如果括号中的键在目标对象中存在,则更新目标对象的值

复制代码
1 dict1 = {
2     'k1':'v1',
3     'k2':'v2',
4     'k3':'v3'
5 }
6 dict1.update({'k4':'v4','k1':'v11'})
7 print(dict1)
8 #输出结果:{'k1': 'v11', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'}
复制代码

7.fromkeys()创建字典

复制代码
 1 #fromkeys使用的时候不是文件名.  是用dict.来调用
 2 val = dict.fromkeys(['k1','k2','k3'],666)   #将666作为值赋给K1 K2 K3三个键
 3 print(val)          #输出结果{'k1': 666, 'k2': 666, 'k3': 666}
 4 val['k1'] = 999     #给数字重新赋值,在内存中重新开辟一块内存用来储存999,然后k1指向999,原来的k2 k3值不变
 5 print(val)         #输出结果{'k1': 999, 'k2': 666, 'k3': 666}
 6 
 7 val = dict.fromkeys(['k1','k2','k3'],[])
 8 val['k1'].append(666)
 9 val['k2'].append(999)
10 #k1 k2 k3指向的是同一个值,即[],每次往里加内容的时候 k1  k2  k3 的值都会发生变化
11 print(val)   #输出结果{'k1': [666, 999], 'k2': [666, 999], 'k3': [666, 999]}
12 
13 val = dict.fromkeys(['k1','k2','k3'],[])
14 val['k1'].append(666) 
15 val['k1'] = [1,2,3]  #这里是重新赋值操作,在内存中重新开辟一块空间储存[1,2,3],k1指向他,k2 k3值不变
16 print(val)  #输出结果{'k1': [1, 2, 3], 'k2': [666], 'k3': [666]}
复制代码

8.补充

复制代码
# 题:dic = {'k1':"v1",'k2':'v2'}把key="k1",键值对删除
del dic['k1']
# 题:dic = {'u1':"v1",'k2':'v2','k3':'v3'}把key中存在k,键值对删除
dic = {'u1':"v1",'k2':'v2','k3