学习Python Day5 —— 列表和元组

学习Python Day5 —— 列表

列表

列表是容器型数据类型(序列),将[]作为容器标志,里面多个元素用逗号隔开:[元素1,元素2,…元素N]
列表是可变的(元素的个数和值可变);列表是有序的(元素在容器中有顺序)
任何类型的数据都可以作为列表的元素

列表的增删改查

1.查

a.获取单个元素

​ 语法:
​ 列表[下标]

​ 说明:
​ 1.列表 - 想要获取元素对应的列表
​ 2.[] - 固定写法
​ 3.下标 - 又叫索引;是元素在列表中为止信息对应的标号,每个元素对应的下标有两种
​ 第一种:从0开始依次增加(0表示第一个,1表示第二个,…)
​ 第二种:从-1开始依次减小(-1表示倒数第一个,-2表示倒数第二个…)

b.遍历 - 将列表中的元素一个一个的全部取出来

直接遍历获取元素:

​ for 变量 in 列表:

​ 循环体

movies = ["八百", "花木兰", "信条", "星际穿越", "熊出没", "肖申克的救赎"]
for x in movies:
    print(x)

遍历的同时获取元素和元素对应下标

​ for 变量1,变量2 in enumerate(列表):
​ 循环体
​ 变量1获取到的是每个元素的下标,变量2获取到的是每个元素

movies = ["八百", "花木兰", "信条", "星际穿越", "熊出没", "肖申克的救赎"]
for x, y in enumerate(movies):
    print("x:%d  y:%s" % (x, y))

通过遍历列表中每个元素的下标来间接的遍历元素

movies = ["八百", "花木兰", "信条", "星际穿越", "熊出没", "肖申克的救赎"]
for x in range(6):
    print(movies[x])
for x in range(0, 6, 2):
    print(movies[x])
for x in range(-1, -7, -1):
    print(movies[x])
2.增

a. 列表.append(元素) - 在指定的列表的最后添加指定元素

hera_list = ["亚索", "卢仙", "盲僧"]
print(hera_list)
hera_list.append("瑞兹")
print(hera_list)

b. 列表.insert(下标, 元素) - 在列表指定下标前插入指定元素

hera_list.insert(1, "儿童劫")
print(hera_list)
3.删

a. del 列表[下标] - 删除列表中指定下标对应的元素

masters = ["貂蝉", "小乔", "大乔", "甄姬", "王昭君"]
del masters[2]
print(masters)

b. 列表.remove(元素) - 删除列表中指定的元素

masters = ["貂蝉", "小乔", "大乔", "甄姬", "王昭君"]
masters.remove("小乔")
print(masters)

注意:如果元素不存在会报错

​ 如果被删除的元素有多个只删除最前面的那一个

c.

​ 列表.pop() - 取出列表最后一个元素

​ 列表.pop(下标) - 取出列表中指定的元素

masters = ["貂蝉", "小乔", "大乔", "甄姬", "王昭君"]
x = masters.pop()
print(masters, x)

x = masters.pop(1)
print(masters, x)
4.改

列表[下标] = 新值 - 将列表指定下标对应的元素修改成新值

teleplays = ["123", "456", "789", "147", "258", "369"]
teleplays[0] = "海贼王"
print(teleplays)

列表的切片

1.基本语法

列表[开始下标:结束下表:步长] - 从开始下标获取到结束下标前为止,每次增加步长
注意:
1)列表切片的结果一定是列表
2)结束下标对应的元素一定取不到
3)如果步长为正,表示从前往后取,这个时候开始下标对应的元素必须在结束下标对应的元素的前面,否则结果是空列表
如果步长为负,表示从后往前取,这个时候开始下标对应的元素必须在结束下标对应的元素的前面,否则结果是空列表

list1 = [23, 45, 67, 89, 45, 67, 32]
print(list1[1:4:1])     # [45, 67, 89]
print(list1[0:6:2])     # [23, 67, 45]
print(list1[3:3:1])     # []
print(list1[1:4:-1])    # []
print(list1[1:-1:-1])   # []
print(list1[-2:1:-2])   # [67, 89]
2.切片省略

1)省略步长
列表[开始下标:结束下标] - 省略步长,步长就是1:列表[开始下标:结束下标:1]
2)省略开始下标
列表[:结束下标:步长]
步长为正:从第一个元素开始往后取(相当于开始下标是0)
步长为负:从最后一个元素开始往前取(相当于开始下标是-1)
3)省略结束下标
列表[开始下标::步长]
步长为正:取到最后一个元素为止
步长为负:取到第一个元素为止

3.列表的相关操作

1.加法运算和乘法运算

​ 加法:列表1 + 列表2 - 合并两个列表并产生一个新的列表

list1 = [10, 20, 30]
list2 = [100, 200]
list3 = list1 + list2
print(list3)        # [10, 20, 30, 100, 200]
# 注意:列表只能和列表相加

​ 乘法:列表N/N列表 - 将列表中的元素重复N次产生一个新列表

list4 = list1*3
print(list4)    # [10, 20, 30, 10, 20, 30, 10, 20, 30]
list5 = list1*1
list6 = list1
print(list5, list6)     # [10, 20, 30] [10, 20, 30]

2.比较运算

两个列表比较大小 - 比较第一对不相等的元素的大小,谁大对应的列表就大

list11 = [10, 200, 3, 4, 5]
list22 = [10, 20, 3000]
print(list11 > list22)

比较相等

print([1, 2, 3] == [1, 2, 3])   # True
print([1, 3, 2] == [1, 2, 3])   # False
print([1, 2, 3] == "abc")       # False

3.in 和 not in

# 元素 in 列表  - 判断列表中是否存在指定的元素
# 元素 not in 列表  - 判断列表中是否不存在指定的元素
print(10 in [1, 20, 10, 4])     # True
print(10 not in [1, 20, 10, 4])     # False

4.相关函数(sum,max,min,sorted,len,list)

1.sum(数字列表) - 求列表中所有元素的和

scores = [34, 89, 90, 78, 65, 78, 60]
print(sum(scores))      # 494

2.max(列表)/min(列表) - 求列表中元素的最大/最小值(注意:列表中元素的类型必须一致,并且元素本身支持比较运算)

scores = [34, 89, 90, 78, 65, 78, 60]
print(max(scores))      # 90
print(min(scores))      # 34

3.sorted(列表) - 将列表中的元素从小到大排序(升序),产生一个新的列表(不会修改原列表)

​ sorted(列表,reverse=True) - 将列表中的元素从大到小排序(降序),产生一个新的列表(不会修改原列表)

scores = [34, 89, 90, 78, 65, 78, 60]
new_scores = sorted(scores)
print(new_scores)   # [34, 60, 65, 78, 78, 89, 90]

scores = [34, 89, 90, 78, 65, 78, 60]
new_scores1 = sorted(scores, reverse=True)
print(new_scores1)  # [90, 89, 78, 78, 65, 60, 34]

4.len(列表) - 获取列表长度(列表中元素的个数)

scores = [34, 89, 90, 78, 65, 78, 60]
print(len(scores))  # 7

5.list() - 将指定数据转成列表(数据必须是序列;转换的时候直接将序列中的元素作为新的列表的元素)

列表相关方法

1.列表.clear() - 清空指定列表

names = ["张三", "李四", "王五"]
names.clear()
print(names)    # []

2.列表.copy() - 复制指定列表产生一个一模一样的新列表(地址不同)

names = ["张三", "李四", "王五"]
new_names = names.copy()
print(new_names)    # ['张三', '李四', '王五']
print(id(names), id(new_names))    # 2309158884424 2309158883912

3.列表.count(元素) - 统计指定元素在列表中出现的次数

nums = [23, 21, 56, 23, 23, 25, 21]
print(nums.count(23))   # 3
print(nums.count(100))  # 0

4.列表.extend(序列) - 将序列中的元素全部添加到列表中

names = ["张三", "李四", "王五"]
names.extend(["熊大", "熊二"])
print(names)    # ['张三', '李四', '王五', '熊大', '熊二']

names = ["张三", "李四", "王五"]
names.extend("123")
print(names)    # ['张三', '李四', '王五', '1', '2', '3']

5.列表.index(元素) - 获取指定元素在列表中的下标(返回的是0开始的下标值)

names = ["张三", "李四", "王五"]
print(names.index("张三"))    # 0

注意:如果元素不存在会报错

​ 如果有多个元素会返回第一个元素的下标

names = ["张三", "李四", "王五"]
print(names.index("张三"))    # 0

6.列表.reverse() - 列表倒叙

names = ["张三", "李四", "王五"]
names.reverse()
print(names)    # ['王五', '李四', '张三']

7.列表.sort() - 将列表中的元素从小到大排序(不会产生新的列表)

列表.sort(reverse=True) - 将列表中的元素从大到下排序(不会产生新的列表)

nums = [23, 21, 56, 23, 23, 25, 21]
nums.sort()
print(nums)     # [21, 21, 23, 23, 23, 25, 56]
nums.sort(reverse=True)
print(nums)     # [56, 25, 23, 23, 23, 21, 21]

猜你喜欢

转载自blog.csdn.net/zhaoxin0917/article/details/108855482