列表(list)

1.列表概念

变量:使用变量存储数据,,但是存在一个缺点:,一个变量一次只能存储一个数据

若要存储多个数据:一般使用列表

列表本质上面是一个有序的集合.

2.创建列表

 语法:

变量名 = 列表

列表名称 = [数据1,数据2........]

说明: 使用 [ ] 表示创建列表

  1. 列表中存储的数据为元素
  2. 列表中的元素从头到尾进行了编号,编号从0开始,这个编号被称为下标或者索引或者角标
  3. 索引的取值范围:0 ~~~~ 元素的个数 - 1
  4. 超过索引的范围:列表越界

代码演示:

# 创建列表
list1 = [] 空列表

# 带元素的列表
list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]

# 列表中的元素可以是不同的数据类型
list3 = [12,3.13,True,False,"hello","米西米西"]

注意: 将数据保存到列表的时候,不用考虑列表的大小,如果数据很大的话,底层会进行自动扩容.

3.获取元素

访问方式:通过索引访问列表中的元素【有序,索引:决定了元素在内存中的位置】

list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]
list2[0] # 表示第一个元素
list2[-1] # 表示最后一个元素
len(list2) # 表示获取列表元素的个数
list2[11] # 越界访问
list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]

4.替换元素(修改元素的值)

语法:列表名[索引] = 值

注意:列表中存储的是其实是变量,所以可以随时修改值

代码演示:

list2 = ["五菱宏光","哈弗H6","大狗","欧拉",True]
# 修改列表元素 语法:列表名[索引] = 值
print(list2)
list2[2] = "天狗"
print(list2)

5.遍历元素

list3 = ["肠粉","佛跳墙","白切鸡","云吞"]
'''
# 第一种方式:
for i in list3:
print(i)

# 第二种方式: 通过索引的方式访问元素
for i in range(len(list3)):
print(list3[i])
'''
# 第三种方式:enumrate() 同时遍历索引和元素
for index,value in enumerate(list3):
print(index,value)

6.列表组合

代码演示:

#合并列表: 通过 + 实现
list = [12,34,6,8,3.13]
list1 = ["荔枝","龙眼","桂圆","榴莲","芒果"]
print(list,list1)

# 通过 + 实现列表的合并 list + list1
list2 = list + list1
print(list2)

7.列表元素重复打印

重复输出列表中的元素: 通过 * 实现
list = [1,2,3]
list1 = list * 4
print(list1)

8. 判断元素是否在列表中

# 判断指定元素是否在列表中,使用成员运算符检查in和not in
# 返回值是一个布尔类型True和False

list1 = [12,34,4.12,"haha","lele","hehe"]
print(12 in list1) # True
if "haha" in list1:
    print("字符串在列表中")
else:
    print("不在列表中")

9.列表切片

list2 = [13,45,2,35,7,9]
# 语法: 列表名[开始下标:结束下标] 
# 特点: 前闭后开 包含开始下标的元素不包含结束下标的元素 pr
int(list2[1:6])
print(list2[:4]) # [13, 45, 2, 35]
print(list2[1:]) # [45, 2, 35, 7, 9]
print(list2[:]) # [13, 45, 2, 35, 7, 9]
print(list2[-2:]) # [7, 9]

10.列表中的内置函数

# 1.添加元素
# a. append() 向列表的尾部追加元素
list1 = ["香妃","妲己","赵飞燕","杨贵妃","东施"]
print(list1)
# 追加单个元素
list1.append("西施")
# 追加多个元素的时候,不能直接追加,必须使用列表的方式追加,原列表变成了二维列表
list1.append(["王昭君","貂蝉","大小乔"])
print(list1)

# b.extend 用于在列表末尾一次追加另一个列表中的多个元素
list1 = ["香妃","妲己","赵飞燕","杨贵妃","东施"]
list1.extend(["乾隆","商纣王","汉昭帝","唐玄宗","解博超"])
list1.extend("秦始皇") # "秦" "始" "皇"
print(list1)

# c.insert() 在列表中指定的索引处插入元素,后面的其他的元素依次后延
list2 = ["秦始皇","汉武帝","曹操","刘备","孙权"]
list2.insert(1,"刘邦")
# 若想一次性插入多个元素使用列表的形式插入 原列表会变为二维列表
list2.insert(3,["诸葛亮","马超"])
print(list2)

# 2. 删除元素
list2 = ["秦始皇", "汉武帝", "曹操", "刘备", "孙权"]
# pop() 传输的参数是下标 不传参数的时候,默认移除最后一个元素,返回的是原列表
print(list2)
# list2.pop() ["秦始皇","汉武帝","曹操","刘备"]
list2.pop(2) # ['秦始皇', '汉武帝', '刘备', '孙权']
print(list2)

# remove() 传输的参数是指定移除的元素
list2.remove("刘备")
print(list2)

# clear() 清空列表
print(list2)
list2.clear()
print(list2)  # []

# 3.获取元素
list = [12, 34, 2, 5.23, True, False, "hello"]
# print(len(list)) # len 获取列表的长度

# 获取列表中的最大值 max()
list1 = [12, 3, 4, 32, 98, 14, 3, 78, 3, 34, 3]
# print(max(list1))

# 获取列表中的最大值 min()
print(min(list1))

# 获取指定元素的索引 index(元素名称)
print(list1.index(98))

# 4.其他用法
# 列表的其他用法
list = [12, 42, 34, 16, 87]
print(list)
reverse 翻转列表元素 注意:在原列表的内部进行翻转,不会生成新列表
list.reverse()
print(list)

# sort() 对原列表元素进行排序 默认是升序 不会生成一个新的列表
# 升序
list.sort()
print(list)

# 降序 在sort函数中传入reverse=True 实现降序
list.sort(reverse=True)
print(list)

# sorted() 对列表元素进行排序,默认是升序, 排序的结果会生成一个新列表
# 升序
list1 = sorted(list)
# 降序 传入reverse=True
list1 = sorted(list, reverse=True)
print(list1)
list2 = ["a", "hello", "abe", "bc", "everyone"]
按照元素的长度进行排序
list3 = sorted(list2, key=len)
print(list3)

11. 列表推导式

列表推导式就是最终得到一个列表。

格式1:[i  for  i  in  可迭代的]

格式2:[i for i in 可迭代的if条件]

代码演示:

# 列表推导式:最终得到一个列表

list1 = [(i + 2) for i in range(1, 10)]
print(list1)

# 格式2:[i for i in 可迭代的if条件]
list1 = [i for i in range(1, 10) if i % 2 == 0]
print(list1)

# 将所有单词取出来
list2 = ['62', 'hello', '100', 'Jeek', '99']
list3 = [word for word in list2 if word.isalpha()]
print(list3)

# list2 如果h开头的则将首字母大写,不是h开头的全部转大写
list4 = [word.title() if word.startswith('h') else word.isalpha() and word.upper() for word in list2]
print(list4)
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值