列表的增刪改查總結、練習

  列表

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=" ")

 

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