python 列表

作业易错题

"""
4.请用代码实现:
li = ["alex", "wusir", "taibai"]
利用下划线将列表的每一个元素拼接成字符串"alex_wusir_taibai"
"""

li = ["alex", "wusir", "taibai"]
# s = "" # "alex_wusir_taibai_"       #   ""+"alex"+"_ = "alex_"   "alex_"+"wusir"+"_"  "alex_wusir_" +"taibai"+"_"
# for i in li:
#     s = s + i + "_"
# print(s[:-1])

# print("_".join(li))  # 拼接的符号.join(可迭代对象)

# 错误的示范
# print(str.join(li))

"""
9.利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后在对列表的元素进行筛选,将能被4整除的数留下来。
"""
# lst = []
# for i in range(100,9,-2):
#     lst.append(i)
#
# for j in lst:
#     if j % 4 != 0:
#         lst.remove(j)
# print(lst)

"""
10.利用for循环和range,将1-30的数字中能被3整除的数改成* 依次添加到的列表当中
"""
# lst = []
# for i in range(1,31):
#     if i % 3 == 0:
#         lst.append("*")
#     else:
#         lst.append(i)
# print(lst)

"""
11.查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,
并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
"""
# li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
# lst = []
# for i in li:
#     em = i.strip()
#     if (em.startswith("A") or em.startswith("a")) and em.endswith("c"):
#         lst.append(em)
# print(lst)

"""
12.开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),
并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
"""
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
# len()
# in
# if
# input()
# replace

# lst = []
# content = input("请输入内容:") # "苍老师真是厉害,教育了一代又一代,武藤兰也是一个狠人啊"
# for i in li:
#     if i in content:
#         content = content.replace(i,len(i) * "*")  # em = "苍老师真是厉害,教育了一代又一代,***也是一个狠人啊"
          # 有点坑
# lst.append(content)
# print(lst)

"""
13.有如下列表(选做题)

循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
我想要的结果是:
1
3
4
alex
3
7
8
taibai
5
ritian
"""

# li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
# for i in li:
#     if type(i) == list:
#         for em in i:
#             if type(em) == str:
#                 print(em.lower())
#             else:
#                 print(em)
#     else:
#         if type(i) == str:
#             print(i.lower())
#         else:
#             print(i)


"""
14.用户输入一个数字,使用列表输出这个数字内的斐波那契数列,如下列表:(选做题)
用户输入100 输出[1,1,2,3,5,8,13,21,34,55,89]这个列表
"""
# lst = [1,1]
# num = input("请输入数字:")  # 10
# if num.isdecimal():
#     new_num = int(num)
#     while lst[-1] + lst[-2] <= new_num:
#         lst.append(lst[-1]+lst[-2])
#     print(lst)
# else:
#     print("请输数字!")

笔记总结

列表 -- list
    有序,可变的,索引,
    作用:存储数据的,支持很多种数据类型

定义方式:
lst = [1,"alex","黑哥"]

增:
append 追加
insert 插入
extend 迭代添加

删
del lst  -- 删除整个列表
del lst[1:2] -- 切片删除
del lst[1:4:2] -- 步长删除

pop
  1.默认删除最后一个
  2.有返回值返回的是被删除的元素
  3.通过索引进行删除

clear 清空列表
remove 通过元素进行删除

改
lst[0] = 1
lst[1:2] ="qaaa"   # 元素可以超出切片的位数
lst[1:4:2] = "12"  # 元素和位置一一对应,多也不行少也不行

查
for i in lst:
    print(i)

列表的嵌套:
取值通过索引进行取值,一层一层的进行查找

2.元组 -- tuple
  只能索引查看和for查看,不能进行增删改
  存储一些重要的信息数据
  元组是不可变的列表

3.range -- 范围
    python3:
        range 是一个可迭代对象
    python2:
        xrange和python3中的range是相似的
        range返回一个列表
    range 是顾头不顾尾

    range(起始位置,终止位置)  --  [起始位置:终止位置]
    range(终止位置)  --  [:终止位置]
    range(起始位置,终止位置,步长)  --  [起始位置:终止位置:步长]

    for 和 range配合使用

面试题:

lst = []
for i in lst:
    lst.append("alex")
    print(lst)  # 不会打印内容  因为lst是空的

lst = [1,2]
for i in lst:
    lst.append("alex")
    print(lst) # 循环打印lst中的内容 -- 此循环是死循环

lst = [1,2]
for i in lst:
    lst.append("alex")
print(lst)  # 死循环 -- 不会打印内容

lst = []
for i in range(5):
    lst.append([])
print(lst)  # [[],[],[],[],[]]

lst = [1,2]
lst[0] = lst
print(lst)  # [[...],2]
posted @ 2019-09-21 14:10  谢国宏  阅读(228)  评论(0编辑  收藏  举报