列表, 元组, range() 知识总结

一:列表的增删改查

1,列表增加元素

lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]

1,#在屁股后面添加
lst.append("黄宏") # 在原有的基础上进行的操作
2,# 在xxx位置插入xxxx内容
lst.insert(1,"王力宏")
3,迭代增加
lst.extend(["麻花藤", "马云", "王健林", "许家印"]) # 迭代添加

print(lst)
View Code

2,列表删除元素

lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]

1,pop()
data = lst.pop(2) # 返回被删除的数据
print(data)
print(lst)

2,remove()
lst.remove("赵四") # 删除元素.
print(lst.remove("赵四"))
lst.remove("刘能") # 如果不存在会报错

3,切片删除
del lst[1:3]
print(lst)

4,清空
lst.clear()
print(lst)
View Code

3,利用切片修改,和删除后增加

lst = ["王者农药", "魔兽世界", "DNF", "逆水寒", "反恐精英"]
lst[0] = "扫雷"
print(lst)
lst[3] = "吃鸡"
#
lst[1:3] = ["跑跑卡丁车"]  # 先删除后添加
# lst[1::2] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数
print(lst)

lst = ["锅包肉", "好人家火锅", "巫山烤鱼", "清水煮白菜", "烤鸭"]
for el in lst: # element(元素)
    print(el)
View Code

 二:列表的知识补充

1,列表转成字符串

# 将列表转换成字符串. 每个元素之间用_拼接
s = "**".join(["高华新", "刘清扬", "崔园樟"])   #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的参
print(s)                                       #数是列表

ss = "高华新**刘清扬**崔园樟"
ss.split("**")                                 #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的
                                                 #参数是分隔符
#字符串转换成列表: split()
#把列表转换成字符串: join()

# s = "_".join("马化腾")
# print(s)
#
# join(可迭代对象)
View Code

2,列表和字典都不能再循环的时候进行删除. 

#举例说明
lst = ["张国荣", '张铁林', '张国立', "张曼玉", "汪峰"]
for el in lst:
    if el.startswith(""):
        lst.remove(el)
print(lst)

#输出结果如下

E:\老男孩课程\venv\Scripts\python.exe "E:/老男孩课程/day04/code/04 知识点补充.py"
['张铁林', '张曼玉', '汪峰']



#################################
lst = ["紫云", "大云", "玉溪", "紫钻","a","b"]
lst.clear()
new_lst = [] # 准备要删除的信息
for el in lst: # 有一个变量来记录当前循环的位置
    new_lst.append(el)

# 循环新列表, 删除老列表
for el in new_lst:
    lst.remove(el)
#
# 删除的时候, 发现. 剩余了一下内容. 原因是内部的索引在改变.
# 需要把要删除的内容记录下来. 然后循环这个记录. 删除原来的列表

print(lst)
print(new_lst)


lst = ["张国荣", '张铁林', '张国立', "张曼玉", "汪峰"]
# 删掉姓张的
# 记录姓张的.
zhangs = []
for el in lst:
    if el.startswith(""):
        zhangs.append(el)
for el in zhangs:
    lst.remove(el)
print(lst)
print(zhangs)
# 字典
# dic = {"提莫":"冯提莫", "发姐":"陈一发儿", "55开":"卢本伟"}
# # dic.clear()
# lst = []
# for k in dic:
#     lst.append(k)
#
# for el in lst:
#     dic.pop(el)
# print(dic)

# 综上. 列表和字典都不能再循环的时候进行删除. 字典再循环的时候不允许改变大小

# dic = {"apple":"苹果", "banana":"香蕉"}
# # 返回新字典. 和原来的没关系
# ret = dic.fromkeys("orange", "橘子") # 直接用字典去访问fromkeys不会对字典产生影响
# ret = dict.fromkeys("abc",["哈哈","呵呵", "吼吼"]) # fromkeys直接使用类名进行访问
# print(ret)
# a = ["哈哈","呵呵", "吼吼"]
# ret = dict.fromkeys("abc", a) # fromkeys直接使用类名进行访问
# a.append("嘻嘻")
# print(ret)
View Code

 三:列表的相关操作

1,列表的嵌套

lst = ["alex", "gay","wusir",["范冰冰","李冰冰",[1, "火锅", "ritian", "凤爪"],"王冰冰"]]
print(lst[3][2][1]) # 火锅
lst[3][2][2] = lst[3][2][2].upper()
print(lst)

lst[3][2][0] = lst[3][2][0] + 99
print(lst)
View Code

2,列表的排序,翻转

lst = [1,5,3,4,3,2,44,3,2,22]
lst.sort(reverse=True) # 排序. 默认升序,  # reverse=True 降序
print(lst)

lst = ['晓雪',"小茹", "小花","晓梅"]
lst.reverse() # 翻转
print(lst)

print(len(lst))
View Code

四:元组书写问题

1,元组的书写

# print((1+3)*5)
# print((3))
上面print中的小括号表示优先级

元组的书写规范
1,空元组
tu=tuple()  #表示空元组
1,只有一各元素的元组
tu=(3,)    表示只有一个元素的元组
View Code

2,元组的特点,元组只能查看,不能增删改

tu = ("人民币", "美元", "英镑", "欧元")
tu.append("哈哈")
tu[0] = "日元" # 不予许修改
del tu[2] # 删除也不行

print(tu[2]) # 索引可以用
print(tu[::2])

for el in tu:
    print(el)
View Code

3,元组的特点,元组的第一层是不能进行赋值的. 内部元素是没有要求

# 元组的第一层是不能进行赋值的. 内部元素是没有要求
tu = (1, "哈喽", "how are you?", "alex", ["alex"])
tu[3].upper()
print(tu)
View Code

 五:range()函数

1,range()函数详解

#range()函数返回的是一个可迭代对象
一,书写规范
range(start,end,step) 
其中start表示开开始,可以省略,end表示结束,这个必修写,不能神略,step表示步长,也可以神略,如果不写默认为1

二,实例

#1. range(n)  0 -> n-1
for i in range(10):
    print(i)
#2. range(m,n) m -> n-1
for i in range(1,10):
    print(i)
# 3. range(m,n,q) m -> n-1 每q个取一个
for i in range(1,10,3):
    print(i)

for i in range(100, 90, -1):
    print(i)
#       0        1      2         3            4        5
lst = ["砂锅", "馒头", "盖浇饭", "刀削面", "大麻花", "大煎饼"]
# 获取到列表的索引. 拿到索引之后. 可以拿到元素
for i in range(len(lst)):
    print(i)    # i就是lst的索引
    print(lst[i])
for el in lst:
    print(el)
View Code

 

posted @ 2019-09-21 15:44  36*艳阳天  阅读(222)  评论(0编辑  收藏  举报