python基础总结(三)—列表

# 创建时间:2023/6/10
# 创建目的:学习python
# coding:utf-8
"""
列表:
    .变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便地对这些数据进行整体操作

    .列表是一个有序且可更改的集合,并且是最常用的 Python 数据类型。在 Python 中,列表是使用方括号 [] 编写的。

    .在Python中,列表中元素的数据类型可以不同,可以包含整数、浮点数和复数等,当然,也可以包含列表、元组、字典和集合等。

    .创建一个列表,只需要把逗号分隔的不同数据项使用方括号 [] 括起来即可。

    .可以使用 list() 构造函数创建列表:(注意:在使用 list() 函数创建列表时,一定要注意双括号(())或([])。)

    .下标索引访问元组分为两大类,即正向索引和反向索引,格式为 list_name[i] ,其中,list_name 表示列表名,
     i表示索引值,i可以是正数(正向索引)也可以是负数(反向索引)。list_name[0]表示列表的第一个元素,
     list_name[-1]则表示列表的最后一个元素。
     当指定索引不存在的时候,抛出错误indexError

    .我们既可以使用下标索引访问列表中的某个元素(得到一个元素的值),也可以使用切片访问列表中的一组元素(得到是子列表)。
     使用切片访问列表的格式为 list_name[start : end : step] ,其中,start 表示起始索引,end 表示结束索引,step 表示步长。
     在使用切片访问列表元素时,list_name[strat : end : step],[start:end] 是左闭右开区间,即访问不了 end 代表的元素。

列表的特点:
    .列表按顺序有序排列
    .索引映射唯一数据
    .列表可以存储重复数据
    .任意数据类型缓存
    .根据需要动态分配和回收内存
"""

list1 = ["code", "亦向枫", 123]
list2 = list(("code", "亦向枫", 123))
list3 = list(["code", "亦向枫", 123])
print(type(list2))  # <class 'list'>
print(type(list3))  # <class 'list'>
print(list1[1])
print(list1[0])  # list1第一个元素
print(list1[-1])  # list1最后一个元素
print(list1[0:2:1])  # ['code', '亦向枫']
# for 循环遍历列表
for i in list1:
    print(i)
"""
code
亦向枫
123
"""

# 要确定列表中是否存在指定的项,我们可以使用 in 关键字:
print(123 in list1)  # True
# 使用 in 关键字检查列表中是否存在指定项时,如果存在,则返回 True ;反之,则返回 False 。
# 当我们创建列表后,我们可以对列表中的数据项进行修改或更新
list1[1] = "亦宸"
print(list1)  # ['code', '亦宸', 123]

# 当我们要确定一个列表有多少项目(元素)时,可以使用len()函数。
print(len(list1))  # 3

# 我们可以使用 del list_name[i] 来删除某个指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。
del list1[0]
print(list1)  # ['亦宸', 123]

# del 函数不仅可以实现删除某个元素,还可以删除整个列表。
# del list2
# print(list2)
# 当我们使用 del 函数删除某列表后,再使用 print() 函数打印输出时,会报错NameError: name 'list_de' is not defined,表明该列表未被定义。
"""
内置方法:
    .append() 方法用于在列表末尾添加新的对象(任何类型(字符串、数字、对象等)的元素。)
     语法:list.append(element)

    .insert() 方法用于将指定对象插入列表的指定位置。
     语法:list.insert(position, element)
      
    .append() 只能在末尾处添加元素或列表,insert() 可以在任意位置添加元素或列表。
    
    .extend() 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
     语法:list.extend(iterable)  iterable:必需。任何可迭代对象(列表、集合、元组等)。

    .count() 方法用于统计某个元素在列表中出现的次数。
     list.count(value)
    
    .index() 方法用于从列表中找出某个值第一个匹配项的索引位置。
     list.index(element)
     当被搜索值在列表中多次出现时,仅返回首次出现的位置。
    
    .sort() 方法用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
     语法:list.sort(reverse=True|False, key=myFunc)
     reverse=True 将对列表进行降序排序。默认是 reverse=False。
    
    .copy() 方法用于复制列表,类似于 a[:]。
     复制(制作副本)的另一种方法是使用内置函数 list() 
     
    .颠倒列表顺序 reverse()   reverse() 方法用于反向列表中元素。
      
    .pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
     list.pop(pos)
     pos:可选。数字,指定需删除元素的位置。默认值 -1,返回最后的项目。

    .remove() 方法用于移除列表中某个值的第一个匹配项。
     当被删除的元素在列表中存在多个时,默认删除首次出现的那个。
     
    clear() 方法用于清空列表,类似于 del a[:]。
    
    clear() 方法的作用是清空列表,执行结束后对其使用 print() 打印输出时,会输出 [] ,说明列表还存在,只是空列表而已。
    del 函数的作用是删除列表,执行结束后对其使用 print() 打印输出时,会报错 NameError: name 'word' is not defined

"""
list0 = [1, "王老五", [1, 2, 3], "python"]
list0.append([4, "张老三", "learning"])
print(list0)  # [1, '王老五', [1, 2, 3], 'python', [4, '张老三', 'learning']]
list0.insert(0, "亦向枫")
print(list0)  # ['亦向枫', 1, '王老五', [1, 2, 3], 'python', [4, '张老三', 'learning']]
dict1 = {'name': 'pink', 'gender': True}
list0.extend(dict1)
print(list0)  # ['亦向枫', 1, '王老五', [1, 2, 3], 'python', [4, '张老三', 'learning'], 'name', 'gender']
print(list0.count(1))  # 1
print(list0.index("python"))  # 4
x = list0.copy()
print(x)  # ['亦向枫', 1, '王老五', [1, 2, 3], 'python', [4, '张老三', 'learning'], 'name', 'gender']
list = list(list0)
print(list)  # ['亦向枫', 1, '王老五', [1, 2, 3], 'python', [4, '张老三', 'learning'], 'name', 'gender']
list.reverse()
print(list)  # ['gender', 'name', [4, '张老三', 'learning'], 'python', [1, 2, 3], '王老五', 1, '亦向枫']
list0.pop(1)
print(list0)  # ['亦向枫', '王老五', [1, 2, 3], 'python', [4, '张老三', 'learning'], 'name', 'gender']
list0.remove([1, 2, 3])
print(list0)  # ['亦向枫', '王老五', 'python', [4, '张老三', 'learning'], 'name', 'gender']
list.clear()
print(list)  # []

 列表生成式:是python内置的比较简单但是功能强大的用于生成list的生成式

     语法:  [元素  for循环  if语句]

    说明:   元素和for循环不能省略,但是,if语句可以省略

# 生成一个列表,[1,4,9,16,25,36,49,64,81]

使用列表生成式,        会发现就会代码会少很多
list4 = [i ** 2 for i in range(1, 10) if i % 2 == 1]
print(list4)

# 生成一个列表,列表中的元素为1-100以内3的倍数

# 方式一:传统方式
list5 = []
for i in range(1, 100):
    if i % 3 == 0:
        list5.append(i)
print(list5)
# 方式二:使用列表生成式
list6 = [i for i in range(1, 100) if i % 3 == 0]
print(list6)

列表生成式可以书写多个for循环,表示for循环的嵌套

# 方式一:传统方式
list7 = []
for i in "abc":
    for j in "xyz":
        list7.append(i + j)
print(list7)
# 方式二:使用列表生成式
list8 = [i + j for i in "abc" for j in "xyz"]
print(list8)

在for循环中可以定义多个变量

    需求:有个字典  dict1 = {'a': 10, 'b': 20, 'c': 30}  ,  需要得到这种列表样子: ['a10', 'b20', 'c30']

dict1 = {'a': 10, 'b': 20, 'c': 30}
# 方式一:传统方式
list9 = []
for key, value in dict1.items():
    list9.append(str(key) + str(value))
print(list9)
# 方式二:使用列表生成式
list10 = [key + str(value) for key, value in dict1.items()]
print(list10)

"""
    注意:列表生成式相比较普通列表的生成式,比较简洁,
        但是只能实现简单的逻辑,否则代码的可读性降低
"""

# .使用列表生成式将一个列表元素中的小写字母转换为大写,生成一个新的列表

list_1 = ['hello', 10, 'Abc', 'asBd', True]
# 方式一:
newlist_1 = []
for s in list_1:
    if isinstance(s, str):  # isinstance()来判断是不是str类型
        newlist_1.append(s.upper())
print(newlist_1)
# 方式二:
newlist_2 = [s.upper() for s in list_1 if isinstance(s, str)]
print(newlist_2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值