python学习-day12:列表、元祖、字典介绍和内置

时间:2023-03-09 18:12:07
python学习-day12:列表、元祖、字典介绍和内置
list:列表 
         >>>----可以被
修改。修改成元素,元素可以使单独的数字,也可以是:新的list。
                通过:链表。。每个元素存储的时候,同时会指向下一个元素。
二、list编辑修改方法

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
2.1 索引
li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
print(li[1])
结果:2

答案

2.2  切片

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
b=li[0:-1]
c=li[0:4]
d=li[1:3]
print(b)
print(c)
print(d)
[1, 2, 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a']]
[1, 2, 'alex', 'ds']
[2, 'alex']

答案

2.3 修改:切片修改,变为元素。。单个修改,则是插入新的列表

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
li[1]=[11,12,23]
print(li)
li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
li[1:3]=[32,23,23,233]
print(li)
[1, [11, 12, 23], 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']

答案

[1, 32, 23, 23, 233, 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']

答案

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
li[1]=120
print(li)
li[1]=[11,12,23]
print(li)
a=li[1:3]
print(a)
li[1:3]=[32,23,23,233]
print(li)
[1, 120, 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']
[1, [11, 12, 23], 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']
[[11, 12, 23], 'alex']
[1, 32, 23, 23, 233, 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']

答案

2.4 删除

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
del li[1]
print(li)
del li[0:2]
print(li)
[1, 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']
['ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']

答案

2.5   for循环、while循环

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
for i in li:
print(i)
1
2
alex
ds
都是
alex
['是正文', '赖晓', 'a']
jda

答案

2.6 in 判断操作

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
v=2 in li
print(v)
True

答案

2.7  操作

li = [1, 12, 9, "age", ["石振文", ["", 10], "庞麦郎"], "alex", True]
v=li[3][1][0]
print(v)
结果:19

答案

2.8 字符串转化为列表

a="dsdsadasdasl"
v=list(a)
print(v)
['d', 's', 'd', 's', 'a', 'd', 'a', 's', 'd', 'a', 's', 'l']

答案

2.9 列表→字符串

1、整体转化

li=[1,2,'alex','ds','都是','alex','jda']
v=str(li)
print(v)
# 把整个li整体转化为字符串
[1, 2, 'alex', 'ds', '都是', 'alex', 'jda']

答案

2、每个元素转化:只能自己写for循环。列表中:既有数字又有字符串

s=''
li1=[1,2,'alex','ds','都是','alex','jda']
for i in li1:
a=str(i)
s += a
print(s)
12alexds都是alexjda

答案

3、列表中只有字符串:可用jion进行拼接

li1=['alex','ds','都是','alex','jda']

print("".join(li1))
alexds都是alexjda

答案

2.10  用len()函数可以获得list元素的个数:

li = [1, 12, 9, "age", ["石振文", ["", 10], "庞麦郎"], "alex", True]
print(len(li))
运行结果:7

答案

三、list内置方法大全

# 对象.方法(..)  list.append(self.参数)

3.1、append(self.,p_object):原来自最后追加。

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']

#1、append 原来值最后追加.不需要一个新的变量来接受,a=li.append(5)

li.append(5)
li.append("dsds")
li.append([12,'dsds'])
print(li)
[1, 2, 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda', 5, 'dsds', [12, 'dsds']]

答案

3.2 li.clear 清空列表

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
li.clear()
print(li)
[]

答案

3.3 li.copy 拷贝 浅拷贝

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
v=li.copy()
print(v)
[1, 2, 'alex', 'ds', '都是', 'alex', ['是正文', '赖晓', 'a'], 'jda']

答案

3.4 count 计算元素出现的次数

li=[1,2,'alex','ds','都是','alex',['是正文','赖晓','a'],'jda']
v=li.count("alex")
print(v)
运行结果;2

答案

3.5  extend(self,iterable)扩展原列表,iterable→参数:可迭代对象:可以被for循环执行的。字符串、列表

li = [11, 22, 33, 22, 44]
li.extend([9898,“不得了”])
print(li)
[11, 22, 33, 22, 44, 9898, '不得了']

答案

append:

li = [11, 22, 33, 22, 44]
li.append([9898,"不得了"])
print(li)
[11, 22, 33, 22, 44, [9898, '不得了']]

答案

extend相当于内部循环append到列表最后:

li = [11, 22, 33, 22, 44]
li.extend([9898,"不得了"])
print(li) li = [11, 22, 33, 22, 44]
for i in [9898,"不得了"]:
li.append(i)
print(li)
li=[11, 22, 33, 22, 44, 9898, '不得了']
li.extend("不得了")
print(li)
前两个答案:[11, 22, 33, 22, 44, 9898, '不得了']
第三个代码:[11, 22, 33, 22, 44, 9898, '不得了', '不', '得', '了']

答案

3.6 index(self,value,start=None,stop=None)  找某个值索引位置。没有参数则从左到右,找到第一个。参数可以加索引的起始位置和结束位置

li = [11, 22, 33, 22, 44]
v= li.index(22)
print(v)
s= li.index(33)
print(s)
答案:1、2

3.7  insert .insert(self, index, p_object) 插入值的具体位置和插入的值。

li = [11, 22, 33, 22, 44]
li.insert(0,99) (0,[99])也是可以的
print(li)
[99, 11, 22, 33, 22, 44]

答案

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

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

答案

3.9 remove(self,value).

li = [11, 22, 33, 22, 44]  #删除列表中的指定值,左边优先 删除第一个,就停止
li.remove(22)
print(li)
[11, 33, 22, 44]

答案

目前列表删除的方式:pop remove del li[0] del li[7:9] clear

3.10  rerevse 将当前列表进行翻转。

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

答案

3.11 sort(self,key=None,reverse=False) 排序 从小到大

li = [11,44, 22, 33, 22]
print(li)
li.sort() #从小到大排序
print(li) li = [11,44, 22, 33, 22]
print(li)
li.sort(reverse=True) #从大到小排序
print(li)
[11, 44, 22, 33, 22]
[11, 22, 22, 33, 44] [11, 44, 22, 33, 22]
[44, 33, 22, 22, 11]

答案

tuple  元祖 :另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改→增加,修改,删除都不行.

1.1、书写方法:

tu = (111,"alex",(11,22),[(33,44)],True,33,44,)

1.2、索引取值

tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
v = tu[0]
print(v)
111

答案

1.3、切片

tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
v = tu[0:2]
print(v)
(111, 'alex')

答案

1.4、for循环:可迭代对象

tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
for item in tu:
print(item)
111
alex
(11, 22)
[(33, 44)]
True
33
44

答案

三、字典:dict

字典的key中:

①True和1不能同时存在,若存在的话就显示1个。

②列表、字典不能作为key。列表可以被修改为动态;

③元祖可以作为字典的key

以后知识:字典是作为哈希表来保存的。key会转化为:哈希值,values,则原样提取和转化。

由于列表不支持直接转化为哈希表。所以列表不能作为key

字典的value:可以是任何值,

info={'k1':'v1','k2':'v2'}   键值对

info={

    'k1':18,

     'k2':True,

'k3':[11,

22,

33,

{

'kk1':'vv1',

'kk2':'vv2',

'kk3':'vv3'}

],

'k4':(11,22,33,44),

}

字典方法大全:

3.1、通过索引定位相位的值:

v=info['k1']
print(v)
结果是:18

答案

v=info['k3'][3]['kk3']→vv3

3.2、删除  del info['key']

info = {
"k1": 18,
2: True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
del info['k1']
print(info)
删除相关的

del info['k3'][5]['kk1']
print(info)
{2: True, 'k3': [11, [], (), 22, 33, {'kk3': (11, 22), 'kk2': 'vv2'}], 'k4': (11, 22, 33, 44), 'k1': 18}

答案

3.3 进行for循环

info = {
"k1": 18,
2: True,
"k3": [
11,
[],
(),
22,
33,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,22),
}
],
"k4": (11,22,33,44)
}
for item in info:
print(item)
 答案
for item in info.values():
print(item)
[11, [], (), 22, 33, {'kk2': 'vv2', 'kk3': (11, 22), 'kk1': 'vv1'}]
True
(11, 22, 33, 44)
18

答案

for  k,v in info.items():
print(k,v)
k3 [11, [], (), 22, 33, {'kk2': 'vv2', 'kk1': 'vv1', 'kk3': (11, 22)}]
k1 18
2 True
k4 (11, 22, 33, 44)

答案

3.4