博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day12—列表、元组、字典基本语法
阅读量:5107 次
发布时间:2019-06-13

本文共 5660 字,大约阅读时间需要 18 分钟。

一、list类中提供的方法

**********************灰魔法**************************

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

li = [11, 22, 33, 22, 44]li.append(5)li.append("alex")li.append([1234,2323])print(li)       # [11, 22, 33, 22, 44, 5, 'alex', [1234, 2323]]

2. 清空列表 clear()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10. 列表的排序(默认为 False) sort()

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

 

*************************深灰魔法**************************

1. 索引取值

print( li [3] )

2. 切片,切片结果也是列表
print( li [3 : -1])

3. for循环 

for item in li:

print(item)

4. 列表元素修改 

li = [11, 44, 22, 33, 22]li[1] = 120print(li)     # [11, 120, 22, 33, 22]li[1] = [11,22,33,44]print(li)     # [11, [11, 22, 33, 44], 22, 33, 22]

5. 删除 del()

li = [11, 44, 22, 33, 22]del li[1]print(li)     # [11,22,33,22]

6. 切片

li = [11, 44, 22, 33, 22]li[1:3] = [120,90]print(li)     # [11, 120, 90, 33, 22] del li[2:4] print(li)     # [11, 120, 22]

7. in 操作

li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]v1 = "石振文" in liprint(v1)     # Falsev2 = "age" in liprint(v2)     # True

8. 操作

li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True]print(li[4][1][0])     # 19print(li[4][1])        # ['19', 10]

9. 字符串转换为列表

a = 123a = str(a)new_a = list(a)  # 字符串可以转换为列表,数值不可以print(new_a)     # ['1', '2', '3']

10. 列表转换为字符串

li = [11,22,33,"123","alex"]s = ""for i in li:    s = s + str(i)print(s)     # 112233123alex

或者用 join 的方法

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

11. 字符串修改

v = "alex"v = v.replace('l','el')print(v)     # aelex

 

二、元组类中提供的方法

1. 索引

    v = tu[0]
    print(v)

2. 切片

    v = tu[0:2]
    print(v)

3.  可以被 for 循环,可迭代对象

    for item in tu:

    print(item)

4. 字符串转换为元组

s = "asdfas"li = ["asdf","asdfas"]tu = ("asdf","as")v = tuple(s)print(v)     # ('a', 's', 'd', 'f', 'a', 's')v = tuple(li)print(v)     # ('asdf', 'asdfas')v = list(tu)print(v)     # ['asdf', 'as']v = "_".join(tu)print(v)     # asdf_asli = ["asdf","asdfasdf"]li.extend((11,22,33,))print(li)    # ['asdf', 'asdfasdf', 11, 22, 33]

5. 元组的一级元素不可修改/删除/增加

tu = (111,"alex",(11,22),[(33,44)],True,33,44,)# 元组,有序。v = tu[3][0][0]print(v)     # 33v=tu[3]print(v)     # [(33, 44)]tu[3][0] = 567print(tu)     # (111, 'alex', (11, 22), [567], True, 33, 44)tu[3] = '12'    # 报错

 

三、字典类中提供的方法

基本结构

1、字典的 value 可以是任何值——列表、元组、字典、布尔值等

2、布尔值(1,0)、列表、字典不能作为字典的 key,但元组可以

3、索引方式找到字典的元素

4、字典支持 del 删除

info = {    "k1": 18,    "k3": [        11,        [],        (),        {            'kk1': 'vv1',            'kk2': 'vv2',            'kk3': (11,22),        }    ],    2: (11,22,33)}del info['k1']print(info)     # {2: (11, 22, 33), 'k3': [11, [], (), {'kk2': 'vv2', 'kk1': 'vv1', 'kk3': (11, 22)}]}del info['k3'][3]['kk1']print(info)     # {2: (11, 22, 33), 'k3': [11, [], (), {'kk2': 'vv2', 'kk3': (11, 22)}]}

5、 for 循环

info = {    2: True,    "k3": [        11,        [],        (),        {            'kk1': 'vv1',            'kk2': 'vv2',            'kk3': (11,22),        }    ],    4: (11,22,33,44)}for item in info:    print(item)             # 2                            # 4                            # k3for item in info.keys():    print(item)             # 2                            # 4                            # k3for item in info.values():    print(item)             # 11, [], (), {'kk2': 'vv2', 'kk1': 'vv1', 'kk3': (11, 22)}]                            # True                            # (11, 22, 33, 44)for k,v in info.items():    print(k,v)              # 2 True                            # 4 (11, 22, 33, 44)                            # k3 [11, [], (), {'kk1': 'vv1', 'kk3': (11, 22), 'kk2': 'vv2'}]

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

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

7. 根据Key获取值,key不存在时,可以指定默认值(None)

dic = {
"k1":"v1"}v = dic['k1']print(v) # v1v = dic.get('k11111')print(v) # None 如果用dic则会报错v = dic.get('k11111','asdf')print(v) # asdf 如果不存在,就传递asdf

8. 删除并获取值  pop(), popitem()

dic = {    "k1": 'v1',    "k2": 'v2'}v = dic.pop('k1',90)print(dic,v)            # {'k2': 'v2'} v1      如果没有k1,就传递90k,v = dic.popitem()     # 随机删除print(dic,k,v)          # {} k2 v2

9. 设置值  setdefault()

dic = {    "k1": 'v1',    "k2": 'v2'}v = dic.setdefault('k1','123')      # 已存在,不设置,获取当前key对应的值print(dic,v)       # {'k1': 'v1', 'k2': 'v2'} v1v = dic.setdefault('k3','123')      # 不存在,设置,获取当前key对应的值print(dic,v)       # {'k1': 'v1', 'k2': 'v2', 'k3': '123'} 123

10. 更新(两种写法都可以) update()

dic = {    "k1": 'v1',    "k2": 'v2'}dic.update({
'k1': '111111','k3': 123})print(dic) # {'k2': 'v2', 'k1': '111111', 'k3': 123}dic.update(k1=123,k3=345,k5="asdf")print(dic) # {'k5': 'asdf', 'k2': 'v2', 'k1': 123, 'k3': 345}

转载于:https://www.cnblogs.com/zhangguoxv/p/9746394.html

你可能感兴趣的文章
Atcoder Grand Contest 004 题解
查看>>
MFC中 给对话框添加背景图片
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
idea 系列破解
查看>>
Repeater + Resources 列表 [原创][分享]
查看>>
c# Resolve SQlite Concurrency Exception Problem (Using Read-Write Lock)
查看>>
dependency injection
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
C#综合揭秘——细说多线程(下)
查看>>
c#运算符 ?
查看>>
ps互补色
查看>>
Silverlight学习笔记(九)-----RenderTransform特效【五种基本变换】及【矩阵变换MatrixTransform】...
查看>>
【题解】青蛙的约会
查看>>
【eclipse】点Clean后没反应
查看>>
springboot下html的js中使用shiro标签功能
查看>>
求给定字符串的最长子字符串
查看>>
.26-浅析webpack源码之事件流make(1)
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
Android Handler学习笔记
查看>>