零py-(ep-11)
本帖最后由 Nicole37 于 2023-8-2 10:19 编辑列表2:(增、删、改、查)
增:
1、append() :在列表末尾添加元素注意:append只能每次添加一个元素
e.g
a = ["晚上","吃啥"]
a.append("呢")
a
['晚上', '吃啥', '呢']
2、extend() :其参数必须是一个可迭代对象,新的内容是追加到原列表最后一个元素的后面
e.g
a.extend(["冰粉","卷凉皮","甜品"])
a
['晚上', '吃啥', '呢', '冰粉', '卷凉皮', '甜品']
3、切片方法可代替append和extent :
e.g
a = ["快餐","赤豆元宵","混沌"]
a
['晚上', '吃啥', '呢', '冰粉', '卷凉皮', '甜品', '快餐', '赤豆元宵', '混沌']
4、insert() :在列表的任意位置添加数据,两个参数,参数1 是位置索引值,参数2 是待插入的元素
e.g
a.insert(4,"或者")
a
['晚上', '吃啥', '呢', '冰粉', '或者', '卷凉皮', '甜品', '快餐', '赤豆元宵', '混沌']
a.insert(0,"今天")
a
['今天', '晚上', '吃啥', '呢', '冰粉', '或者', '卷凉皮', '甜品', '快餐', '赤豆元宵', '混沌']
a.insert(len(a),"?")
a
['今天', '晚上', '吃啥', '呢', '冰粉', '或者', '卷凉皮', '甜品', '快餐', '赤豆元宵', '混沌', '?']
删:
1、remove() :将指定元素删除
e.g
a.remove("赤豆元宵")
a
['今天', '晚上', '吃啥', '呢', '冰粉', '或者', '卷凉皮', '甜品', '快餐', '混沌', '?']
注意:列表中存在多个匹配的元素,remove只会删除第一个;若指定删除的元素本身不存在,则程序报错
2、pop() :删除指定位置的元素,参数是位置索引值
e.g
a.pop(8)
'快餐'
a
['今天', '晚上', '吃啥', '呢', '冰粉', '或者', '卷凉皮', '甜品', '混沌', '?']
3、clear() :清除列表全部元素
e.g
a.clear()
a
[]
作业题:
1、 s =
s.append()
不会报错。因为 Python 的列表是支持任何类型的对象,当然也包括列表啦。不过添加之后,s 列表的值会变成 ],第 4 个元素是另外一个列表
2、a =
a.extend(["tired"])
a
a.extend("tired")
a
extend的参数需要是一个可迭代对象,然后将可迭代对象的元素依次插入到列表中,而列表本身["tired"]中只有一个元素,而字符串“tired”包含5个元素
3、判断括号是否匹配的问题:应用特殊的列表,栈
0. 请编写一个程序,判断给定的字符串 s 中括号的写法是否合法。
条件:
字符串仅包含 '('、')'、'['、']'、'{'、'}' 这三对括号的组合
左右括号必须成对编写,比如 "()" 是合法的,"(" 则是非法的
左右括号必须以正确的顺序闭合,比如 "{()}" 是合法的,"{(})" 则是非法的
想要解决括号匹配问题,我们需要额外使用一个特殊的列表来作为临时存储。
这个列表之所以特殊,是因为我们对其做了相关规定:
从前往后填入数据
从后往前提取数据
“从前往后填入数据”这是正常行为,append() 方法即可实现;”从后往前提取数据”听着新鲜,可是咱转念一想,这一节课提到的 pop() 方法也正合适。
s = input("请输入测试字符串:")
# 创建一个特殊列表
stack = []
for c in s:
if c == "(" or c == "[" or c == "{": # 如果是左括号 ,那么添加到特殊列表中 #
stack.append(c)
else:
#如果是右括号,但特殊列表中没有左括号,则一定是非法的
if len(stack) == 0:
print("非法")
break
#判断当出现右括号时,将特殊列表的最后一位弹出,判断是否与该右括号相匹配
if c == ')':#d是辅助变量,用来判断弹出的是否匹配
d = '('
elif c == ']':
d = '['
elif c == '}':
d = '{'
if d != stack.pop():# 对比 d 和从特殊列表尾部弹出的元素 #:
print("非法T_T") #如果不等则证明无法匹配
break
else:
if len(stack) == 0:#for else:在整个for循环走完一遍后才执行else,如果中途从break退出,则连后面的else也一起跳出
print("合法")#如果整个循环走完以后 特殊列表中还有元素,证明左括号比右括号数量多,自然不合法
else:
print("非法")#整个循环结束应该左右括号一一匹配,左括号应该一一弹出,最终的特殊列表应为空
页:
[1]