Python基础-06

目录

1.列表引导式

练习:

2.元组 tuple

2.1定义

2.2基础操作

2.3作用

练习

3.字典

3.1定义

3.2基础操作

3.3字典与列表对比

3.4字典推导式

3.5根据value查找key

练习


1.列表引导式

  • 定义:使用简易方法,将可迭代对象转换为列表。

  • 语法:

    变量 = [表达式 for 变量 in 可迭代对象]
    变量 = [表达式 for 变量 in 可迭代对象 if 条件]

# 将列表list01所有元素加1后存入列表list02
list01 = [5,56,6,7,7,8,9]
list02 = []
for item in list01:
    list02.append(item+1)
print(list02)
​
# 重点来啦!!!
list01 = [5,56,6,7,7,8,9]
list02 = [item+1 for item in list01]
​
# -----------------------------------------------
# 将列表list01所有大于10的元素加1后存入列表list02
list01 = [5,56,6,7,7,8,9]
list02 = []
for item in list01:
    if item>10:
    list02.append(item+1)
print(list02)
​
# 重点来啦!!!
list01 = [5,56,6,7,7,8,9]
list02 = [item +1 for item in list01 if item>10]
print(list02)

练习:

# 练习
"""
使用range生成一个1-10之间的数字,将数字的平分存入list01中;将list01中的所有奇数存入list02中;将list01中的所有偶数存入list03中;将list01中所有大于5的偶数加+1后存入list04
"""
list01 = [item ** 2 for item in range(1, 11)]
list02 = [item for item in list01 if item % 2 == 1]
list03 = [item for item in list01 if item % 2 == 0]
list04 = [item + 1 for item in list01 if item > 5 and item%2 == 0]
​
print(list01)
print(list02)
print(list03)
print(list04)

2.元组 tuple

2.1定义

元组内存图(按需分配,不可变)

  • 由一系列变量组成的不可变序列容器(元组与列表的区别就在于元组不可变而列表可变,列表会预留空间

    列表扩容原理:①列表都会预留空间;②当预留空间不足时,会再创建一个新列表(开一个更大的空间);③将原有数据拷贝到新列表中;④替换引用(原先的箭头变虚,画出新的实线箭头)

    list01 = []
    for i in range(4):
        list01.append((i + 1) * 10)
        print(list01)
        print(id(list01))
    """输出结果:
    [10]
    2062891914240
    [10, 20]
    2062891914240
    [10, 20, 30]
    2062891914240
    [10, 20, 30, 40]
    2062891914240
    """
    # 列表虽然发生变化,但是列表的id却没有变化,因为id指向的是表头
  • 不可变是指一旦创建,不可以再添加/删除/修改元素

2.2基础操作

1.创建元组(创建之后不可变)

# 创建空元组
tuple01 = () 
# 等同于:tuple01 = tuple()
​
# 创建具有默认值的元组
tuple02 = (1,2,3)
​
# 列表 → 元组(灵活运用两种存储机制)
tuple03 = tuple(["a","b","c"])
​
# 元组 → 列表(灵活运用两种存储机制)
list01 = list(tuple02)

2.获取元素:元组切片后还是元组

可以直接将元组赋值给多个变量,列表也可行,但是一般用元组。

tuple01 = ("a","b","c","d")
# 索引
e01 = tuple01[1]        # "b"
print(type(e01))        # "str"
​
# 切片
e02 = tuple01[-2:]
print(type(e02))        # "tuple"
​
# 直接把元组赋值给变量--------------------------------------
tuple02 = (100,200)
a,b = tuple02
print(a)    # 100
print(b)    # 200
​
tuple03 = (100,200,300)
a,b = tuple02
print(a)    # 会报错
print(b)    # 会报错
​
list02 = [100,200]
a,b=list02
print(a)    # 100
print(b)    # 200

3.遍历元素

tuple01 = (100,200)
# 正向
for item in tuple01:
    print(item)
​
# 反向
for i in range(len(tuple01)-1,-1,-1):
    print(tuple01[i])

2.3作用

  • 元组与列表都可以存储一系列变量,由于列表会预留内存

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值