列表的增删改查总结、练习

  列表

1、列表定义
    # 列表元素可以是任何合法类型,不一定是相同的
    list1 = [1, 2, 3, 4]
    list2 = []                   # 空列表
    list3 = list()   # list() 系统函数,创建空列表
    list4 = list("hello")   # list() 可以把字符串转换为列表
    print(list4)

    列表从左到右 0 1 2 。。。,从右往左 -3 -2 -1
    通过下下标访问(读取,修改)  列表名[下标]

2、遍历 访问列表中的每一个元素
    1)while 循环遍历
    2)for-in
        不能通过修改value ,修改列表的值
        for value in list:
            print(value)

3、range(start,end,step)  # 都必须是整数, 默认 start=0, step=1 end没有默认值
    range(100)  表示0到99的整数
    start = 0,end=100,step=1
    for i in range(0,100):
        print(i, end= " ")   #  输出 [0,100) 包头不包尾

     使用range可以构造下标修改列表元素的值

    for i in range(len(list1)):
        print(list1[i], end=" ")
        list1[i] += 20
    print(list1)

4、列表的增加操作
  list1 = [10, 20, 30, 40, 50, 60]
   1)append在列表末尾增加元素
      list1.append(34)
   2)extend 在末尾增加多个元素,参数必须是可迭代元素(可用for in 遍历的) 列表 元组
      list1.extend([23,45,56])
   3)insert(i,obj) 在i下标位置,插入obj元素
      list1.insert(0,45)
      list1.insert(10,5)  i的值大于列表最大下标,则在末尾插入元素

4、列表的删除操作
   1)pop(i) 删除下标为i的元素,i必须是合法的下标
       pop()  不带参数,删除最后一个元素
   2)remove(x) 删除值等于x的元素,值不存在会报错
       if x in list1:
            list1.remove(x)  加个判断进行删除
   3)clear() 清空列表,变成空列表
   4)切片删除 list1[0:2] = []

5、列表的查询、反转、排序
    1)index(x,start,end) 如果有值等于x的元素,则返回其下标,否则报错 从左向右查询,第一个等于x的
    2)reverse() 从右到左输出元组
    3)列表排序
       sort() 默认从小到大
       sort(reverse=True) 从大到小排序

练习

1.不使⽤列表的index函数,⾃⼰写程序查找指定元素
  1)要查找的元素从键盘输⼊
  2) 默认从左向右查找,找到第⼀个元素就停⽌
list1 = [12, 42, 42, 46, 45, 75, 41]
UserInput = int(input("请输入一个整数,进行查找:"))
for i in range(len(list1)):
    if UserInput == list1[i]:
        print("查找成功,该元素在下标为:%d处" % (i))
        break
else:
    print("该元素不在列表中")
2.⾃定义⼀个数字列表,求列表中所有偶数元素的和
 
list2 = [23, 34, 35, 34, 64, 57, 56, 75, 66]
sum = 0
for i in range(len(list2)):
    if list2[i] % 2 == 0:
        sum += list2[i]
print(sum)
3.B哥去参加⻘年歌⼿⼤奖赛,有10个评委打分,去掉⼀个最⾼⼀个最低,求平均分
list3 = [98, 67, 75, 89, 99, 80, 95, 83, 86, 88]
s, average = 0, 0
list3.remove(max(list3))
list3.remove(min(list3))
s = sum(list3)
print(s/8)
4.给定⼀个列表:将列表中指定的某个元素全部删除
list4 = [12, 23, 43, 23, 65, 23, 76, 23, 89, 90]
while 23 in list4:
    list4.remove(23)
print(list4)
5.输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    days = sum(LeapYear[:month-1]) + day
    print("%d是闰年,%d %d %d是这一年中的第%d天" % (year, year, month, day, days))
else:
    days = sum(PingYear[:month - 1]) + day
    print("%d是闰年,%d %d %d是这一年中的第%d天" % (year, year, month, day, days))
6.猜数字 从键盘上输⼊⼀个整数,如果等于你规定的整数,就猜中了,如果⼩于规定的数,提示“⼩了”,否则提示“⼤了”,直到猜中位置
while True:
    UserInput = int(input("请输入你猜的整数:"))
    if UserInput == 3:
        print("恭喜你猜对了!")
        break
    elif UserInput < 3:
        print("小了")
    else:
        print("大了")
7.打印图形
i = 1
num = int(input("请输入图形的层数:"))
while i <= num:
    print(" "*(num-i), end="")
    print("*"*(2*i-1))
    i += 1

结果       

8.python1904班有10个同学,请你设计⼀个程序输⼊每个同学的测验成绩,请总成绩和平均成绩
i, SumGrade, average = 1, 0, 0
list1 = list()
while i <= 10:
    grade = float(input("请输入第%d个学生的测验成绩:" % (i)))
    list1.append(grade)
    i += 1
SumGrade = sum(list1)
average = SumGrade / 10
print("这10位学生的总成绩是%.2f,平均成绩是%.2f" % (SumGrade, average))

 

9.四则计算器,从键盘输⼊两个数和⼀个运算符(+-*/),根据运算符计算表达式的结果。提示:请考虑除数为0的情况
while True:
    num1, num2 = eval(input("请输入两个数,逗号隔开:"))
    op = input("请输入运算符(+-*/):")
    if op == '+':
        print("%2d+%2d=%2d" % (num1, num2, num1 + num2))
    elif op == '-':
        print("%2d-%2d=%2d" % (num1, num2, num1 - num2))
    elif op == '*':
        print("%2d*%2d=%2d" % (num1, num2, num1 * num2))
    elif op == '/':
        if num2 == 0:
            print("被除数不能为0,请重新输入")
    else:
        print("你输入法人操作符不合法,退出程序")
        exit(0)

10.输出1000以内的所有⽔仙花数。

i = 0
while i <= 1000:
    a = i % 10
    b = i // 10 % 10
    c = i // 100
    if a**3+b**3+c**3 == i:
        print(i, end=" ")
    i += 1

11.求1000以内的素数。

for i in range(2,1001):
    for j in range(2,i):
        if i % j == 0:
            break
    else:
        print(i, end=" ")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章